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 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 # rpm screws up the arch lib dir when using --target on RHEL5
45 %ifarch i386 i486 i586 i686 ppc s390
48 %define _libarch %_lib
53 Samba is the protocol by which a lot of PC-related machines share
54 files, printers, and other information (such as lists of available
55 files and printers). The Windows NT, OS/2, and Linux operating systems
56 support this natively, and add-on packages can enable the same thing
57 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
58 provides an SMB server that can be used to provide network services to
59 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
60 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
61 NetBIOS frame) protocol.
64 ######################################################################
66 Summary: Samba (SMB) client programs.
67 Group: Applications/System
68 Requires: samba-common = %{version}-%{release}
70 Provides: samba-client = %{version}-%{release}
73 The samba-client package provides some SMB clients to compliment the
74 built-in SMB filesystem in Linux. These clients allow access of SMB
75 shares and printing to SMB printers.
78 #######################################################################
80 Summary: Files used by both Samba servers and clients.
81 Group: Applications/System
82 Provides: samba-common = %{version}-%{release}
85 Samba-common provides files necessary for both the server and client
89 #######################################################################
91 Summary: The Samba SMB server configuration program.
92 Group: Applications/System
93 Requires: samba = %{version} xinetd
94 Provides: samba-swat = %{version}-%{release}
97 The samba-swat package includes the new SWAT (Samba Web Administration
98 Tool), for remotely managing Samba's smb.conf file using your favorite
101 %ifarch i386 i486 i586 i686 ppc s390
102 %package winbind-32bit
103 Summary: Samba winbind compatibility package for 32bit apps on 64bit archs
104 Group: Applications/System
106 %description winbind-32bit
107 Compatibility package for 32 bit apps on 64 bit architecures
110 %ifarch i386 i486 i586 i686 ppc s390
111 %package winbind-32bit
112 Summary: Samba winbind compatibility package for 32bit apps on 64bit archs
113 Group: Applications/System
115 %description winbind-32bit
116 Compatibility package for 32 bit apps on 64 bit architecures
120 #######################################################################
122 Summary: Samba Documentation
123 Group: Documentation/Other
124 Provides: samba-doc = %{version}-%{release}
125 Prereq: /usr/bin/find /bin/rm /usr/bin/xargs
128 The samba-doc package includes the HTML versions of the Samba manpages
129 utilized by SWAT as well as the HTML and PDF version of "Using Samba",
130 "Samba By Example", and "The Official Samba HOWTO and Reference Guide".
133 #######################################################################
138 # setup the vendor files (init scripts, etc...)
139 %setup -T -D -a 999 -n samba-%{version} -q
140 %setup -T -D -a 997 -n samba-%{version} -q
144 /bin/cp setup/filter-requires-samba.sh %{SOURCE998}
147 # RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
150 # ccache -h 2>&1 > /dev/null
151 #if [ $? -eq 0 ]; then
157 ## always run autogen.sh
160 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
161 --prefix=%{_prefix} \
162 --localstatedir=/var \
163 --with-configdir=%{_sysconfdir}/samba \
164 --with-libdir=%{_libdir}/samba \
165 --with-lockdir=/var/lib/samba \
166 --with-logfilebase=/var/log/samba \
167 --with-mandir=%{_mandir} \
168 --with-piddir=/var/run \
169 --with-privatedir=%{_sysconfdir}/samba \
170 --with-sambabook=%{_datadir}/swat/using_samba \
171 --with-swatdir=%{_datadir}/swat \
178 --with-libsmbclient \
179 --with-libsmbsharemodes \
180 --without-smbwrapper \
183 --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2 \
186 --with-cluster-support \
187 --with-ctdb=/usr/include \
194 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" proto
196 ## check for gcc 3.4 or later
197 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
198 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
199 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
200 if [ ${CC_MAJOR} -ge 3 ]; then
201 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
207 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" %{?_smp_mflags} \
208 all modules pam_smbpass
210 ## build the cifs fs mount helper
212 gcc -o mount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE mount.cifs.c
213 gcc -o umount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE umount.cifs.c
216 # Remove some permission bits to avoid to many dependencies
218 find examples docs -type f | xargs -r chmod -x
221 # Clean up in case there is trash left from a previous build
222 rm -rf $RPM_BUILD_ROOT
224 # Create the target build directory hierarchy
225 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
226 mkdir -p $RPM_BUILD_ROOT%{_includedir}
227 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
228 mkdir -p $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
229 mkdir -p $RPM_BUILD_ROOT%{_libdir}/samba/{auth,charset,idmap,vfs,pdb}
230 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
231 mkdir -p $RPM_BUILD_ROOT%{_mandir}
232 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
233 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
234 mkdir -p $RPM_BUILD_ROOT/sbin
235 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
236 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
237 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
238 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
239 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
240 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
241 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
244 make DESTDIR=$RPM_BUILD_ROOT \
249 cp source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_smbpass.so
251 # NSS & PAM winbind support
252 install -m 755 source/bin/pam_winbind.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_winbind.so
253 install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so
254 install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
255 ( cd $RPM_BUILD_ROOT/%{_libarch};
256 ln -sf libnss_winbind.so libnss_winbind.so.2;
257 ln -sf libnss_wins.so libnss_wins.so.2 )
259 # make install puts libsmbclient.so in the wrong place on x86_64
260 rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.a || true
261 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
262 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
263 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
264 ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so.0
266 # make install puts libmsrpc.so in the wrong place on x86_64
267 #rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.so $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.a || true
268 #install -m 755 source/bin/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so
269 #install -m 755 source/bin/libmsrpc.a $RPM_BUILD_ROOT%{_libdir}/libmsrpc.a
270 #install -m 644 source/include/libmsrpc.h $RPM_BUILD_ROOT%{_includedir}
271 #rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libmsrpc.*
272 #ln -s /%{_libdir}/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so.0
274 # make install puts libsmbsharemodes.so in the wrong place on x86_64
275 rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.a || true
276 install -m 755 source/bin/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so
277 install -m 755 source/bin/libsmbsharemodes.a $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.a
278 install -m 644 source/include/smb_share_modes.h $RPM_BUILD_ROOT%{_includedir}
279 rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libsmbsharemodes.*
280 ln -s /%{_libdir}/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so.0
282 # Install pam_smbpass.so
283 install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_smbpass.so
286 ln -s %{_libdir}/samba/libwbclient.so $RPM_BUILD_ROOT/%{_libdir}/libwbclient.so.0
287 ln -s %{_libdir}/samba/libtalloc.so $RPM_BUILD_ROOT/%{_libdir}/libtalloc.so.1
288 ln -s %{_libdir}/samba/libtdb.so $RPM_BUILD_ROOT/%{_libdir}/libtdb.so.0
289 ln -s %{_libdir}/samba/libnetapi.so $RPM_BUILD_ROOT/%{_libdir}/libnetapi.so.0
292 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
294 # Install the miscellany
295 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
297 install -m644 setup/samba.log $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
298 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
299 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
300 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
301 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
302 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
303 install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
304 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
305 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
306 install -m755 source/client/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
307 install -m755 source/client/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
308 install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
310 /bin/rm $RPM_BUILD_ROOT%{_sbindir}/*mount.cifs
312 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
313 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
315 # Remove "*.old" files
316 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
318 ## don't duplicate the docs. These are installed by/with SWAT
321 ( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
324 ## Clean out man pages for tools not installed here
326 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
327 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
328 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
332 rm -rf $RPM_BUILD_ROOT
335 ## deal with an upgrade from a broken 3.0.21b RPM
336 if [ "$1" -eq "2" ]; then
337 if [ -d /var/cache/samba ]; then
338 for file in `ls /var/cache/samba/*tdb`; do
339 /bin/cp -up $file /var/lib/samba/`basename $file`
341 mkdir -p /var/lib/samba/eventlog
342 for file in `ls /var/cache/samba/eventlog/*tdb`; do
343 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
345 /bin/mv /var/cache/samba /var/cache/samba.moved
351 /sbin/chkconfig --del smb
352 /sbin/chkconfig --del winbind
353 # rm -rf /var/log/samba/* /var/lib/samba/*
354 /sbin/service smb stop >/dev/null 2>&1
359 if [ "$1" -ge "1" ]; then
360 %{initdir}/smb restart >/dev/null 2>&1
365 # Add swat entry to /etc/services if not already there.
366 if [ ! "`grep ^\s**swat /etc/services`" ]; then
367 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
376 #######################################################################
378 #######################################################################
381 %defattr(-,root,root)
383 %config(noreplace) %{_sysconfdir}/sysconfig/samba
384 %config(noreplace) %{_sysconfdir}/samba/smbusers
385 %attr(755,root,root) %config %{initdir}/smb
386 %attr(755,root,root) %config %{initdir}/winbind
387 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
388 %config(noreplace) %{_sysconfdir}/pam.d/samba
390 %attr(0755,root,root) %dir /var/log/samba
391 %attr(0755,root,root) %dir /var/lib/samba
392 %attr(1777,root,root) %dir /var/spool/samba
400 %{_bindir}/mksmbpasswd.sh
401 %{_bindir}/smbcontrol
406 %{_bindir}/eventlogadm
408 %{_libdir}/samba/idmap/*.so
409 %{_libdir}/samba/nss_info/*.so
410 %{_libdir}/samba/vfs/*.so
411 %{_libdir}/samba/auth/*.so
413 %{_mandir}/man1/smbcontrol.1*
414 %{_mandir}/man1/smbstatus.1*
415 %{_mandir}/man1/vfstest.1*
416 %{_mandir}/man5/smbpasswd.5*
417 %{_mandir}/man7/samba.7*
418 %{_mandir}/man8/nmbd.8*
419 %{_mandir}/man8/pdbedit.8*
420 %{_mandir}/man8/smbd.8*
421 %{_mandir}/man8/tdbbackup.8*
422 %{_mandir}/man8/tdbdump.8*
423 %{_mandir}/man8/tdbtool.8*
424 %{_mandir}/man8/eventlogadm.8*
425 %{_mandir}/man8/vfs_*.8*
426 %{_mandir}/man8/idmap_*.8*
432 %defattr(-,root,root)
433 %doc README COPYING Manifest
434 %doc WHATSNEW.txt Roadmap
436 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
437 %doc examples/printing
442 %defattr(-,root,root)
443 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
444 %dir %{_datadir}/swat
447 %{_mandir}/man8/swat.8*
448 %attr(755,root,root) %{_libdir}/samba/*.msg
453 %defattr(-,root,root)
468 %{_mandir}/man8/mount.cifs.8.*
469 %{_mandir}/man8/umount.cifs.8.*
470 %{_mandir}/man8/smbspool.8*
471 %{_mandir}/man1/smbget.1*
472 %{_mandir}/man5/smbgetrc.5*
473 %{_mandir}/man1/findsmb.1*
474 %{_mandir}/man1/nmblookup.1*
475 %{_mandir}/man1/rpcclient.1*
476 %{_mandir}/man1/smbcacls.1*
477 %{_mandir}/man1/smbclient.1*
478 %{_mandir}/man1/smbtar.1*
479 %{_mandir}/man1/smbtree.1*
484 %defattr(-,root,root)
485 %dir %{_sysconfdir}/samba
486 %dir %{_libdir}/samba
487 %dir %{_libdir}/samba/charset
488 %config(noreplace) %{_sysconfdir}/samba/smb.conf
489 %config(noreplace) %{_sysconfdir}/samba/lmhosts
490 %{_initrddir}/winbind
492 %attr(755,root,root) /%{_libarch}/libnss_wins.so*
493 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
494 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
495 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
497 %{_includedir}/libsmbclient.h
498 %{_libdir}/libsmbclient.*
499 #%{_includedir}/libmsrpc.h
500 #%{_libdir}/libmsrpc.*
501 %{_includedir}/smb_share_modes.h
502 %{_libdir}/libsmbsharemodes.*
504 %{_libdir}/samba/*.dat
505 %{_libdir}/samba/charset/*.so
507 %{_includedir}/netapi.h
508 %{_includedir}/wbclient.h
509 %{_includedir}/talloc.h
511 %{_libdir}/samba/libnetapi.so*
512 %{_libdir}/libnetapi.so*
513 %{_libdir}/samba/libtalloc.so*
514 %{_libdir}/libtalloc.so*
515 %{_libdir}/samba/libtdb.so*
516 %{_libdir}/libtdb.so*
517 %{_libdir}/samba/libwbclient.so*
518 %{_libdir}/libwbclient.so*
533 %{_bindir}/smbcquotas
535 %{_mandir}/man1/ntlm_auth.1*
536 %{_mandir}/man1/profiles.1*
537 %{_mandir}/man1/smbcquotas.1*
538 %{_mandir}/man1/testparm.1*
539 %{_mandir}/man5/smb.conf.5*
540 %{_mandir}/man5/lmhosts.5*
541 %{_mandir}/man8/smbpasswd.8*
542 %{_mandir}/man1/wbinfo.1*
543 %{_mandir}/man8/winbindd.8*
544 %{_mandir}/man8/net.8*
545 %{_mandir}/man7/pam_winbind.7*
546 %{_mandir}/man7/libsmbclient.7*
548 %ifarch i386 i486 i586 i686 ppc s390
550 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
551 %attr(755,root,root) /%{_libarch}/libnss_wins.so*
552 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
556 %ifarch i386 i486 i586 i686 ppc s390
558 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
559 %attr(755,root,root) /%{_libarch}/libnss_wins.so*
560 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
565 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
566 - Removed ChangeLog entries since they are kept in CVS