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.test.090508
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 Prereq: /sbin/chkconfig /bin/mktemp /usr/bin/killall
22 Prereq: fileutils sed /etc/init.d
24 Requires: pam >= 0.64 %{auth}
25 Requires: samba-common = %{version}-%{release}
26 Requires: logrotate >= 3.4 initscripts >= 5.54-1
27 Provides: samba = %{version}
30 BuildRoot: %{_tmppath}/%{name}-%{version}-root
31 BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel, ctdb
33 # Working around perl dependency problem from docs
34 %define __perl_requires %{SOURCE998}
36 # rpm screws up the arch lib dir when using --target on RHEL5
37 %ifarch i386 i486 i586 i686 ppc s390
40 %define _libarch %_lib
45 Samba is the protocol by which a lot of PC-related machines share
46 files, printers, and other information (such as lists of available
47 files and printers). The Windows NT, OS/2, and Linux operating systems
48 support this natively, and add-on packages can enable the same thing
49 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
50 provides an SMB server that can be used to provide network services to
51 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
52 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
53 NetBIOS frame) protocol.
56 ######################################################################
58 Summary: Samba (SMB) client programs.
59 Group: Applications/System
60 Requires: samba-common = %{version}-%{release}
62 Provides: samba-client = %{version}-%{release}
65 The samba-client package provides some SMB clients to compliment the
66 built-in SMB filesystem in Linux. These clients allow access of SMB
67 shares and printing to SMB printers.
70 #######################################################################
72 Summary: Files used by both Samba servers and clients.
73 Group: Applications/System
74 Provides: samba-common = %{version}-%{release}
77 Samba-common provides files necessary for both the server and client
81 #######################################################################
83 Summary: The Samba SMB server configuration program.
84 Group: Applications/System
85 Requires: samba = %{version} xinetd
86 Provides: samba-swat = %{version}-%{release}
89 The samba-swat package includes the new SWAT (Samba Web Administration
90 Tool), for remotely managing Samba's smb.conf file using your favorite
93 %ifarch i386 i486 i586 i686 ppc s390
94 %package winbind-32bit
95 Summary: Samba winbind compatibility package for 32bit apps on 64bit archs
96 Group: Applications/System
98 %description winbind-32bit
99 Compatibility package for 32 bit apps on 64 bit architecures
103 #######################################################################
105 Summary: Samba Documentation
106 Group: Documentation/Other
107 Provides: samba-doc = %{version}-%{release}
108 Prereq: /usr/bin/find /bin/rm /usr/bin/xargs
111 The samba-doc package includes the HTML versions of the Samba manpages
112 utilized by SWAT as well as the HTML and PDF version of "Using Samba",
113 "Samba By Example", and "The Official Samba HOWTO and Reference Guide".
116 #######################################################################
121 # setup the vendor files (init scripts, etc...)
122 %setup -T -D -a 999 -n samba-%{version} -q
126 /bin/cp setup/filter-requires-samba.sh %{SOURCE998}
129 # RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
132 # ccache -h 2>&1 > /dev/null
133 #if [ $? -eq 0 ]; then
139 ## always run autogen.sh
142 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
143 --prefix=%{_prefix} \
144 --localstatedir=/var \
145 --with-configdir=%{_sysconfdir}/samba \
146 --with-libdir=%{_libdir}/samba \
147 --with-lockdir=/var/lib/samba \
148 --with-logfilebase=/var/log/samba \
149 --with-mandir=%{_mandir} \
150 --with-piddir=/var/run \
151 --with-privatedir=%{_sysconfdir}/samba \
152 --with-sambabook=%{_datadir}/swat/using_samba \
153 --with-swatdir=%{_datadir}/swat \
160 --with-libsmbclient \
161 --with-libsmbsharemodes \
162 --without-smbwrapper \
165 --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2 \
168 --with-cluster-support \
169 --with-ctdb=/usr/include \
176 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" proto
178 ## check for gcc 3.4 or later
179 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
180 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
181 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
182 if [ ${CC_MAJOR} -ge 3 ]; then
183 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
189 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" %{?_smp_mflags} \
190 all modules pam_smbpass
192 ## build the cifs fs mount helper
194 gcc -o mount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE mount.cifs.c
195 gcc -o umount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE umount.cifs.c
198 # Remove some permission bits to avoid to many dependencies
200 find examples docs -type f | xargs -r chmod -x
203 # Clean up in case there is trash left from a previous build
204 rm -rf $RPM_BUILD_ROOT
206 # Create the target build directory hierarchy
207 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
208 mkdir -p $RPM_BUILD_ROOT%{_includedir}
209 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
210 mkdir -p $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
211 mkdir -p $RPM_BUILD_ROOT%{_libdir}/samba/{auth,charset,idmap,vfs,pdb}
212 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
213 mkdir -p $RPM_BUILD_ROOT%{_mandir}
214 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
215 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
216 mkdir -p $RPM_BUILD_ROOT/sbin
217 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
218 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
219 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
220 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
221 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
222 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
223 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
226 make DESTDIR=$RPM_BUILD_ROOT \
231 cp source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_smbpass.so
233 # NSS & PAM winbind support
234 install -m 755 source/bin/pam_winbind.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_winbind.so
235 install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so
236 install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
237 ( cd $RPM_BUILD_ROOT/%{_libarch};
238 ln -sf libnss_winbind.so libnss_winbind.so.2;
239 ln -sf libnss_wins.so libnss_wins.so.2 )
241 # make install puts libsmbclient.so in the wrong place on x86_64
242 rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.a || true
243 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
244 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
245 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
246 ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so.0
248 # make install puts libmsrpc.so in the wrong place on x86_64
249 #rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.so $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.a || true
250 #install -m 755 source/bin/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so
251 #install -m 755 source/bin/libmsrpc.a $RPM_BUILD_ROOT%{_libdir}/libmsrpc.a
252 #install -m 644 source/include/libmsrpc.h $RPM_BUILD_ROOT%{_includedir}
253 #rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libmsrpc.*
254 #ln -s /%{_libdir}/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so.0
256 # make install puts libsmbsharemodes.so in the wrong place on x86_64
257 rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.a || true
258 install -m 755 source/bin/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so
259 install -m 755 source/bin/libsmbsharemodes.a $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.a
260 install -m 644 source/include/smb_share_modes.h $RPM_BUILD_ROOT%{_includedir}
261 rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libsmbsharemodes.*
262 ln -s /%{_libdir}/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so.0
264 # Install pam_smbpass.so
265 install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_smbpass.so
268 ln -s %{_libdir}/samba/libwbclient.so $RPM_BUILD_ROOT/%{_libdir}/libwbclient.so.0
269 ln -s %{_libdir}/samba/libtalloc.so $RPM_BUILD_ROOT/%{_libdir}/libtalloc.so.1
270 ln -s %{_libdir}/samba/libtdb.so $RPM_BUILD_ROOT/%{_libdir}/libtdb.so.0
271 ln -s %{_libdir}/samba/libnetapi.so $RPM_BUILD_ROOT/%{_libdir}/libnetapi.so.0
274 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
276 # we need a symlink for mount to recognise the smb and smbfs filesystem types
277 #ln -sf %{_prefix}/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
278 #ln -sf %{_prefix}/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
279 #/bin/rm -f $RPM_BUILD_ROOT/mount.smbfs
281 # Install the miscellany
282 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
284 install -m644 setup/samba.log $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
285 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
286 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
287 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
288 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
289 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
290 install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
291 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
292 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
293 install -m755 source/client/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
294 install -m755 source/client/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
295 install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
297 /bin/rm $RPM_BUILD_ROOT%{_sbindir}/*mount.cifs
299 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
300 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
302 # Remove "*.old" files
303 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
305 ## don't duplicate the docs. These are installed by/with SWAT
308 ( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
311 ## Clean out man pages for tools not installed here
313 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
314 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
315 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
319 rm -rf $RPM_BUILD_ROOT
322 ## deal with an upgrade from a broken 3.0.21b RPM
323 if [ "$1" -eq "2" ]; then
324 if [ -d /var/cache/samba ]; then
325 for file in `ls /var/cache/samba/*tdb`; do
326 /bin/cp -up $file /var/lib/samba/`basename $file`
328 mkdir -p /var/lib/samba/eventlog
329 for file in `ls /var/cache/samba/eventlog/*tdb`; do
330 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
332 /bin/mv /var/cache/samba /var/cache/samba.moved
338 /sbin/chkconfig --del smb
339 /sbin/chkconfig --del winbind
340 # rm -rf /var/log/samba/* /var/lib/samba/*
341 /sbin/service smb stop >/dev/null 2>&1
346 if [ "$1" -ge "1" ]; then
347 %{initdir}/smb restart >/dev/null 2>&1
352 # Add swat entry to /etc/services if not already there.
353 if [ ! "`grep ^\s**swat /etc/services`" ]; then
354 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
363 #######################################################################
365 #######################################################################
368 %defattr(-,root,root)
370 %config(noreplace) %{_sysconfdir}/sysconfig/samba
371 %config(noreplace) %{_sysconfdir}/samba/smbusers
372 %attr(755,root,root) %config %{initdir}/smb
373 %attr(755,root,root) %config %{initdir}/winbind
374 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
375 %config(noreplace) %{_sysconfdir}/pam.d/samba
377 %attr(0755,root,root) %dir /var/log/samba
378 %attr(0755,root,root) %dir /var/lib/samba
379 %attr(1777,root,root) %dir /var/spool/samba
387 %{_bindir}/mksmbpasswd.sh
388 %{_bindir}/smbcontrol
393 %{_bindir}/eventlogadm
395 %{_libdir}/samba/idmap/*.so
396 %{_libdir}/samba/nss_info/*.so
397 %{_libdir}/samba/vfs/*.so
398 %{_libdir}/samba/auth/*.so
400 %{_mandir}/man1/smbcontrol.1*
401 %{_mandir}/man1/smbstatus.1*
402 %{_mandir}/man1/vfstest.1*
403 %{_mandir}/man5/smbpasswd.5*
404 %{_mandir}/man7/samba.7*
405 %{_mandir}/man8/nmbd.8*
406 %{_mandir}/man8/pdbedit.8*
407 %{_mandir}/man8/smbd.8*
408 %{_mandir}/man8/tdbbackup.8*
409 %{_mandir}/man8/tdbdump.8*
410 %{_mandir}/man8/tdbtool.8*
411 %{_mandir}/man8/eventlogadm.8*
412 %{_mandir}/man8/vfs_*.8*
413 %{_mandir}/man8/idmap_*.8*
419 %defattr(-,root,root)
420 %doc README COPYING Manifest
421 %doc WHATSNEW.txt Roadmap
423 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
424 %doc examples/printing
429 %defattr(-,root,root)
430 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
431 %dir %{_datadir}/swat
434 %{_mandir}/man8/swat.8*
435 %attr(755,root,root) %{_libdir}/samba/*.msg
440 %defattr(-,root,root)
450 #%{_bindir}/smbumount
460 #%{_mandir}/man8/smbmnt.8*
461 #%{_mandir}/man8/smbmount.8*
462 #%{_mandir}/man8/smbumount.8*
463 %{_mandir}/man8/mount.cifs.8.*
464 %{_mandir}/man8/umount.cifs.8.*
465 %{_mandir}/man8/smbspool.8*
466 %{_mandir}/man1/smbget.1*
467 %{_mandir}/man5/smbgetrc.5*
468 %{_mandir}/man1/findsmb.1*
469 %{_mandir}/man1/nmblookup.1*
470 %{_mandir}/man1/rpcclient.1*
471 %{_mandir}/man1/smbcacls.1*
472 %{_mandir}/man1/smbclient.1*
473 %{_mandir}/man1/smbtar.1*
474 %{_mandir}/man1/smbtree.1*
479 %defattr(-,root,root)
480 %dir %{_sysconfdir}/samba
481 %dir %{_libdir}/samba
482 %dir %{_libdir}/samba/charset
483 %config(noreplace) %{_sysconfdir}/samba/smb.conf
484 %config(noreplace) %{_sysconfdir}/samba/lmhosts
485 %{_initrddir}/winbind
487 %attr(755,root,root) /%{_libarch}/libnss_wins.so*
488 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
489 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
490 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
492 %{_includedir}/libsmbclient.h
493 %{_libdir}/libsmbclient.*
494 #%{_includedir}/libmsrpc.h
495 #%{_libdir}/libmsrpc.*
496 %{_includedir}/smb_share_modes.h
497 %{_libdir}/libsmbsharemodes.*
499 %{_libdir}/samba/*.dat
500 %{_libdir}/samba/charset/*.so
502 %{_includedir}/netapi.h
503 %{_includedir}/wbclient.h
504 %{_includedir}/talloc.h
506 %{_libdir}/samba/libnetapi.so*
507 %{_libdir}/libnetapi.so*
508 %{_libdir}/samba/libtalloc.so*
509 %{_libdir}/libtalloc.so*
510 %{_libdir}/samba/libtdb.so*
511 %{_libdir}/libtdb.so*
512 %{_libdir}/samba/libwbclient.so*
513 %{_libdir}/libwbclient.so*
528 %{_bindir}/smbcquotas
530 %{_mandir}/man1/ntlm_auth.1*
531 %{_mandir}/man1/profiles.1*
532 %{_mandir}/man1/smbcquotas.1*
533 %{_mandir}/man1/testparm.1*
534 %{_mandir}/man5/smb.conf.5*
535 %{_mandir}/man5/lmhosts.5*
536 %{_mandir}/man8/smbpasswd.8*
537 %{_mandir}/man1/wbinfo.1*
538 %{_mandir}/man8/winbindd.8*
539 %{_mandir}/man8/net.8*
540 %{_mandir}/man7/pam_winbind.7*
541 %{_mandir}/man7/libsmbclient.7*
543 %ifarch i386 i486 i586 i686 ppc s390
545 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
546 %attr(755,root,root) /%{_libarch}/libnss_wins.so*
547 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
552 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
553 - Removed ChangeLog entries since they are kept in CVS