1 Summary: Samba SMB client and server
5 Copyright: GNU GPL version 2
7 Source: ftp://samba.org/pub/samba/samba-%{version}.tar.gz
8 Packager: John H Terpstra [Samba-Team] <jht@samba.org>
9 Requires: pam >= 0.72 kernel >= 2.2.1 glibc >= 2.1.2
10 Prereq: chkconfig fileutils
11 Provides: samba = %{version}
12 Obsoletes: samba-common, samba-client, samba-swat
13 BuildRoot: /var/tmp/samba
17 Samba provides an SMB server which can be used to provide
18 network services to SMB (sometimes called "Lan Manager")
19 clients, including various versions of MS Windows, OS/2,
20 and other Linux machines. Samba also provides some SMB
21 clients, which complement the built-in SMB filesystem
22 in Linux. Samba uses NetBIOS over TCP/IP (NetBT) protocols
23 and does NOT need NetBEUI (Microsoft Raw NetBIOS frame)
26 Samba-2.2 features working NT Domain Control capability and
27 includes the SWAT (Samba Web Administration Tool) that
28 allows samba's smb.conf file to be remotely managed using your
29 favourite web browser. For the time being this is being
30 enabled on TCP port 901 via inetd.
32 Users are advised to use Samba-2.2 as a Windows NT4
33 Domain Controller only on networks that do NOT have a Windows
34 NT Domain Controller. This release does NOT as yet have
35 Backup Domain control ability.
37 Please refer to the WHATSNEW.txt document for fixup information.
38 This binary release includes encrypted password support.
40 Please read the smb.conf file and ENCRYPTION.txt in the
41 docs directory for implementation details.
43 NOTE: Red Hat Linux uses PAM which has integrated support
44 for Shadow passwords and quotas. Do NOT recompile with the
45 SHADOW_PWD option enabled
48 * Thu Jun 6 2002 Gerald Carter <jerry@samba.org>
49 - add separate winbindd init script
50 - build and install libsmbclient
52 * Sun Jun 2 2002 Gerald Carter <jerry@samba.org>
53 - include audit and recycle VFS modules in /usr/lib/samba
55 * Mon May 6 2002 Gerald Carter <jerry@samba.org>
56 - moved findsmb to a standard component in samba's
57 "make install". Removed from specfile.
59 * Sun Oct 14 2001 Andrew Bartlett <abartlet@samba.org>
60 - Set SBINDIR for codepage/manpage install, cope with
63 * Mon Aug 1 2001 Tim Potter <tpot@samba.org>
64 - Install winbind daemon, client programs, nss and pam libraries
66 * Sat Mar 31 2001 Andrew Bartlett <abartlet@pcug.org.au>
67 - Changed prefix/share/man for _mandir/share/man
68 - Changed this for a sed macro MANDIR_MACRO
69 - This allows us to build both RH7 (RPM4)
70 and older versions from same specfile.
71 - Made makerpms.sh use the rpm -ta command rather
72 than attempting to devine the correct location to
73 put the file. Also removes some /tmp symlink games.
74 - Allows build on RPM4
75 - Increased PAM requirements to allow us to use
76 system-auth (this pam is in 6.x errata at least)
78 * Tue Mar 27 2001 John H Terpstra <jht@samba.org>
79 - Fixed typos introduced by Sum Wun.
80 - Build for Red Hat 7.x
82 * Sun Nov 12 2000 John H Terpstra <jht@samba.org>
83 - Updated for Samba-2.2 releases
84 - Added libnss_wins.so stuff
85 - Added compile-time options
87 * Sat Nov 29 1999 Matthew Vanecek <mev0003@unt.edu>
88 - Added a Prefix and changed "/usr" to "%{prefix}"
90 * Sat Nov 11 1999 Tridge <tridge@linuxcare.com>
91 - changed from mount.smb to mount.smbfs
93 * Sat Oct 9 1999 Tridge <tridge@linuxcare.com>
95 - added smbmnt and smbmount
97 * Sun Apr 25 1999 John H Terpstra <jht@samba.org>
98 - added smbsh.1 man page
100 * Fri Mar 26 1999 Andrew Tridgell <tridge@samba.org>
101 - added --with-pam as pam is no longer used by default
103 * Sat Jan 27 1999 Jeremy Allison <jra@samba.org>
104 - Removed smbrun binary and tidied up some loose ends
106 * Sun Oct 25 1998 John H Terpstra <jht@samba.org>
107 - Added parameters to /config to ensure smb.conf, lmhosts,
108 and smbusers never gets over-written.
110 * Sat Oct 24 1998 John H Terpstra <jht@samba.org>
111 - removed README.smbsh file from docs area
113 * Mon Oct 05 1998 John H Terpstra <jht@samba.org>
114 - Added rpcclient to binaries list
115 - Added smbwrapper stuff
117 * Fri Aug 21 1998 John H Terpstra <jht@samba.org>
118 - Updated for Samba version 2.0 building
120 * Tue Jul 07 1998 Erik Troan <ewt@redhat.com>
121 - updated postun triggerscript to check $0
122 - clear /etc/codepages from %preun instead of %postun
124 * Sat Jul 04 1998 John H Terpstra <jht@samba.org>
125 - fixed codepage preservation during update via -Uvh
127 * Mon Jun 08 1998 Erik Troan <ewt@redhat.com>
128 - made the %postun script a tad less agressive; no reason to remove
129 the logs or lock file
130 - the %postun and %preun should only exectute if this is the final
132 - migrated %triggerpostun from Red Hat's samba package to work around
133 packaging problems in some Red Hat samba releases
135 * Sun Apr 26 1998 John H Terpstra <jht@samba.org>
136 - Tidy up for early alpha releases
137 - added findsmb from SGI packaging
139 * Thu Apr 09 1998 John H Terpstra <jht@samba.org>
141 - Included new codepage.936
143 * Sat Mar 20 1998 John H Terpstra <jht@samba.org>
144 - Added swat facility
146 * Sat Jan 24 1998 John H Terpstra <jht@samba.org>
147 - Many optimisations (some suggested by Manoj Kasichainula <manojk@io.com>
148 - Use of chkconfig in place of individual symlinks to /etc/rc.d/init/smb
149 - Compounded make line
150 - Updated smb.init restart mechanism
151 - Use compound mkdir -p line instead of individual calls to mkdir
152 - Fixed smb.conf file path for log files
153 - Fixed smb.conf file path for incoming smb print spool directory
154 - Added a number of options to smb.conf file
155 - Added smbuser file and smb.conf file updates for username map
161 ## Build main Samba source
165 libtoolize --copy --force # get it to recognize IA-64
168 EXTRA="-D_LARGEFILE64_SOURCE"
170 NUMCPU=`grep processor /proc/cpuinfo | wc -l`
171 CFLAGS="$RPM_OPT_FLAGS $EXTRA" ./configure \
173 --localstatedir=/var \
174 --with-configdir=/etc/samba \
175 --with-privatedir=/etc/samba \
176 --with-codepagedir=/etc/codepages \
185 --with-sambabook=%{prefix}/share/swat/using_samba \
186 --with-swatdir=%{prefix}/share/swat \
188 make -j${NUMCPU} proto
189 make -j${NUMCPU} all nsswitch/libnss_wins.so
190 make -j${NUMCPU} debug2html
191 make -j${NUMCPU} bin/smbspool
195 CFLAGS="$RPM_OPT_FLAGS $EXTRA" ./configure \
203 rm -rf $RPM_BUILD_ROOT
204 mkdir -p $RPM_BUILD_ROOT
205 mkdir -p $RPM_BUILD_ROOT/sbin
206 mkdir -p $RPM_BUILD_ROOT/etc/samba
207 mkdir -p $RPM_BUILD_ROOT/etc/codepages/src
208 mkdir -p $RPM_BUILD_ROOT/etc/{logrotate.d,pam.d,samba}
209 mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
210 mkdir -p $RPM_BUILD_ROOT%{prefix}/{bin,sbin}
211 mkdir -p $RPM_BUILD_ROOT%{prefix}/share/swat/{images,help,include,using_samba}
212 mkdir -p $RPM_BUILD_ROOT%{prefix}/share/swat/using_samba/{figs,gifs}
213 mkdir -p $RPM_BUILD_ROOTMANDIR_MACRO
214 mkdir -p $RPM_BUILD_ROOT/var/cache/samba
215 mkdir -p $RPM_BUILD_ROOT/var/{log,run}/samba
216 mkdir -p $RPM_BUILD_ROOT/var/spool/samba
217 mkdir -p $RPM_BUILD_ROOT/lib/security
218 mkdir -p $RPM_BUILD_ROOT%{prefix}/lib/samba/vfs
219 mkdir -p $RPM_BUILD_ROOT%{prefix}/{lib,include}
221 # Install standard binary files
222 for i in nmblookup smbclient smbpasswd smbstatus testparm testprns \
223 make_smbcodepage make_unicodemap make_printerdef rpcclient smbspool \
224 smbcacls smbcontrol wbinfo
226 install -m755 source/bin/$i $RPM_BUILD_ROOT%{prefix}/bin
228 for i in mksmbpasswd.sh smbtar findsmb
230 install -m755 source/script/$i $RPM_BUILD_ROOT%{prefix}/bin
233 # Install secure binary files
234 for i in smbd nmbd swat smbmount smbumount smbmnt debug2html winbindd
236 install -m755 source/bin/$i $RPM_BUILD_ROOT%{prefix}/sbin
239 # we need a symlink for mount to recognise the smb and smbfs filesystem types
240 ln -sf %{prefix}/sbin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
241 ln -sf %{prefix}/sbin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
243 # This allows us to get away without duplicating code that
244 # sombody else can maintain for us.
246 make BASEDIR=$RPM_BUILD_ROOT/usr \
247 LIBDIR=$RPM_BUILD_ROOT/etc/samba \
248 VARDIR=$RPM_BUILD_ROOT/var \
249 SBINDIR=$RPM_BUILD_ROOT%{prefix}/sbin \
250 BINDIR=$RPM_BUILD_ROOT%{prefix}/bin \
251 MANDIR=$RPM_BUILD_ROOTMANDIR_MACRO \
252 CODEPAGEDIR=$RPM_BUILD_ROOT/etc/codepages \
253 SWATDIR=$RPM_BUILD_ROOT/usr/share/swat \
254 SAMBABOOK=$RPM_BUILD_ROOT/usr/share/swat/using_samba \
255 installman installcp installswat
258 # Install codepage source files
259 for i in source/codepages/codepage_def.* source/codepages/*.TXT
261 install -m644 $i $RPM_BUILD_ROOT/etc/codepages/src
264 # Install the nsswitch wins library
265 install -m755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/lib
267 # Make link for wins resolver
268 ( cd $RPM_BUILD_ROOT/lib; ln -sf libnss_wins.so libnss_wins.so.2; )
270 # Install winbind shared libraries
271 install -m755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/lib
272 install -m755 source/nsswitch/pam_winbind.so $RPM_BUILD_ROOT/lib/security
274 # Install pam_smbpass.so
275 install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/lib/security
277 # Install the VFS modules
278 install -m755 examples/VFS/recycle/recycle.so $RPM_BUILD_ROOT%{prefix}/lib/samba/vfs
279 install -m644 examples/VFS/recycle/recycle.conf $RPM_BUILD_ROOT/etc/samba/
280 install -m755 examples/VFS/block/block.so $RPM_BUILD_ROOT%{prefix}/lib/samba/vfs
281 install -m644 examples/VFS/block/samba-block.conf $RPM_BUILD_ROOT/etc/samba/
282 install -m755 examples/VFS/audit.so $RPM_BUILD_ROOT%{prefix}/lib/samba/vfs
284 # clean out VFS directory since it will get installed as documentation later
285 (cd examples/VFS; make clean)
288 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{prefix}/lib/
289 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{prefix}/lib/
290 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{prefix}/include/
292 # Install SWAT helper files
293 for i in swat/help/*.html docs/htmldocs/*.html
295 install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/help
297 for i in swat/images/*.gif
299 install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/images
301 for i in swat/include/*.html
303 install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/include
306 # Install the miscellany
307 install -m644 swat/README $RPM_BUILD_ROOT%{prefix}/share/swat
308 install -m755 packaging/RedHat/smbprint $RPM_BUILD_ROOT%{prefix}/bin
309 install -m755 packaging/RedHat/smb.init $RPM_BUILD_ROOT/etc/rc.d/init.d/smb
310 install -m755 packaging/RedHat/winbind.init $RPM_BUILD_ROOT/etc/rc.d/init.d/winbind
311 install -m755 packaging/RedHat/smb.init $RPM_BUILD_ROOT%{prefix}/sbin/samba
312 install -m644 packaging/RedHat/samba.log $RPM_BUILD_ROOT/etc/logrotate.d/samba
313 install -m644 packaging/RedHat/smb.conf $RPM_BUILD_ROOT/etc/samba/smb.conf
314 install -m644 packaging/RedHat/smbusers $RPM_BUILD_ROOT/etc/samba/smbusers
315 install -m644 packaging/RedHat/samba.pamd $RPM_BUILD_ROOT/etc/pam.d/samba
316 install -m644 packaging/RedHat/samba.pamd.stack $RPM_BUILD_ROOT/etc/samba/samba.stack
317 install -m644 packaging/RedHat/samba.xinetd $RPM_BUILD_ROOT/etc/samba/samba.xinetd
318 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT/etc/samba/lmhosts
321 rm -rf $RPM_BUILD_ROOT
324 /sbin/chkconfig --add smb
325 /sbin/chkconfig --add winbind
326 /sbin/chkconfig smb off
327 /sbin/chkconfig winbind off
329 echo "Looking for old /etc/smb.conf..."
330 if [ -f /etc/smb.conf -a ! -f /etc/samba/smb.conf ]; then
331 echo "Moving old /etc/smb.conf to /etc/samba/smb.conf"
332 mv /etc/smb.conf /etc/samba/smb.conf
335 echo "Looking for old /etc/smbusers..."
336 if [ -f /etc/smbusers -a ! -f /etc/samba/smbusers ]; then
337 echo "Moving old /etc/smbusers to /etc/samba/smbusers"
338 mv /etc/smbusers /etc/samba/smbusers
341 echo "Looking for old /etc/lmhosts..."
342 if [ -f /etc/lmhosts -a ! -f /etc/samba/lmhosts ]; then
343 echo "Moving old /etc/lmhosts to /etc/samba/lmhosts"
344 mv /etc/lmhosts /etc/samba/lmhosts
347 echo "Looking for old /etc/MACHINE.SID..."
348 if [ -f /etc/MACHINE.SID -a ! -f /etc/samba/MACHINE.SID ]; then
349 echo "Moving old /etc/MACHINE.SID to /etc/samba/MACHINE.SID"
350 mv /etc/MACHINE.SID /etc/samba/MACHINE.SID
353 echo "Looking for old /etc/smbpasswd..."
354 if [ -f /etc/smbpasswd -a ! -f /etc/samba/smbpasswd ]; then
355 echo "Moving old /etc/smbpasswd to /etc/samba/smbpasswd"
356 mv /etc/smbpasswd /etc/samba/smbpasswd
360 # For 2.2.1 we move the tdb files from /var/lock/samba to /var/cache/samba
361 # to preserve across reboots.
363 echo "Moving tdb files in /var/lock/samba/*.tdb to /var/cache/samba/*.tdb"
364 for i in /var/lock/samba/*.tdb
367 newname=`echo $i | sed -e's|var\/lock\/samba|var\/cache\/samba|'`
368 echo "Moving $i to $newname"
373 # Remove the transient tdb files.
374 if [ -e /var/cache/samba/brlock.tdb ]; then
375 rm -f /var/cache/samba/brlock.tdb
378 if [ -e /var/cache/samba/unexpected.tdb ]; then
379 rm -f /var/cache/samba/unexpected.tdb
382 if [ -e /var/cache/samba/connections.tdb ]; then
383 rm -f /var/cache/samba/connections.tdb
386 if [ -e /var/cache/samba/locking.tdb ]; then
387 rm -f /var/cache/samba/locking.tdb
390 if [ -e /var/cache/samba/messages.tdb ]; then
391 rm -f /var/cache/samba/messages.tdb
394 if [ -d /var/lock/samba ]; then
395 rm -rf /var/lock/samba
398 # Add swat entry to /etc/services if not already there.
399 if !( grep ^[:space:]*swat /etc/services > /dev/null ) then
400 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
403 # Add swat entry to /etc/inetd.conf if needed.
404 if [ -f /etc/inetd.conf ]; then
405 if !( grep ^[:space:]*swat /etc/inetd.conf > /dev/null ) then
406 echo 'swat stream tcp nowait.400 root %{prefix}/sbin/swat swat' >> /etc/inetd.conf
407 killall -1 inetd || :
411 # Add swat entry to xinetd.d if needed.
412 if [ -d $RPM_BUILD_ROOT/etc/xinetd.d -a ! -f /etc/xinetd.d/swat ]; then
413 mv /etc/samba/samba.xinetd /etc/xinetd.d/swat
415 rm -f /etc/samba/samba.xinetd
418 # Install the correct version of the samba pam file, depending on pam version.
419 if [ -f /lib/security/pam_stack.so ]; then
420 echo "Installing stack version of /etc/pam.d/samba..."
421 mv /etc/samba/samba.stack /etc/pam.d/samba
423 echo "Installing non-stack version of /etc/pam.d/samba..."
424 rm -f /etc/samba/samba.stack
427 # Create winbind nss client symlink
429 if [ -e /lib/libnss_winbind.so ]; then
430 ln -sf /lib/libnss_winbind.so /lib/libnss_winbind.so.2
435 /sbin/chkconfig --del smb
437 # We want to remove the browse.dat and wins.dat files so they can not interfer with a new version of samba!
438 if [ -e /var/cache/samba/browse.dat ]; then
439 rm -f /var/cache/samba/browse.dat
441 if [ -e /var/cache/samba/wins.dat ]; then
442 rm -f /var/cache/samba/wins.dat
445 # Remove the transient tdb files.
446 if [ -e /var/cache/samba/brlock.tdb ]; then
447 rm -f /var/cache/samba/brlock.tdb
450 if [ -e /var/cache/samba/unexpected.tdb ]; then
451 rm -f /var/cache/samba/unexpected.tdb
454 if [ -e /var/cache/samba/connections.tdb ]; then
455 rm -f /var/cache/samba/connections.tdb
458 if [ -e /var/cache/samba/locking.tdb ]; then
459 rm -f /var/cache/samba/locking.tdb
462 if [ -e /var/cache/samba/messages.tdb ]; then
463 rm -f /var/cache/samba/messages.tdb
466 # Remove winbind nss client symlink
468 if [ -L /lib/libnss_winbind.so.2 ]; then
469 rm -f /lib/libnss_winbind.so.2
474 # Only delete remnants of samba if this is the final deletion.
476 if [ -x /etc/pam.d/samba ]; then
477 rm -f /etc/pam.d/samba
479 if [ -e /var/log/samba ]; then
480 rm -rf /var/log/samba
482 if [ -e /var/cache/samba ]; then
483 rm -rf /var/cache/samba
486 # Remove swat entries from /etc/inetd.conf and /etc/services
489 if [ -f /etc/inetd.conf ]; then
490 # preserve inetd.conf permissions.
491 cp -p /etc/inetd.conf $tmpfile
492 sed -e '/^[:space:]*swat.*$/d' /etc/inetd.conf > $tmpfile
493 mv $tmpfile inetd.conf
495 # preserve services permissions.
496 cp -p /etc/services $tmpfile
497 sed -e '/^[:space:]*swat.*$/d' /etc/services > $tmpfile
498 mv $tmpfile /etc/services
500 # Remove swat entry from /etc/xinetd.d
501 if [ -f /etc/xinetd.d/swat ]; then
502 rm -r /etc/xinetd.d/swat
506 %triggerpostun -- samba < samba-2.0.0
508 /sbin/chkconfig --add smb
512 %defattr(-,root,root)
513 %doc README COPYING Manifest Read-Manifest-Now
514 %doc WHATSNEW.txt Roadmap
521 %{prefix}/sbin/smbmnt
522 %{prefix}/sbin/smbmount
523 %{prefix}/sbin/smbumount
524 %{prefix}/sbin/winbindd
527 %{prefix}/bin/mksmbpasswd.sh
528 %{prefix}/bin/smbclient
529 %{prefix}/bin/smbspool
530 %{prefix}/bin/rpcclient
531 %{prefix}/bin/testparm
532 %{prefix}/bin/testprns
533 %{prefix}/bin/findsmb
534 %{prefix}/bin/smbstatus
535 %{prefix}/bin/nmblookup
536 %{prefix}/bin/make_smbcodepage
537 %{prefix}/bin/make_unicodemap
538 %{prefix}/bin/make_printerdef
539 %{prefix}/bin/smbpasswd
541 %{prefix}/bin/smbprint
542 %{prefix}/bin/smbcontrol
543 %{prefix}/bin/smbcacls
545 %attr(755,root,root) /lib/libnss_wins.s*
546 %attr(755,root,root) %{prefix}/lib/samba/vfs/*.so
547 %{prefix}/include/libsmbclient.h
548 %{prefix}/lib/libsmbclient.a
549 %{prefix}/lib/libsmbclient.so
550 %{prefix}/share/swat/help/*
551 %{prefix}/share/swat/images/*
552 %{prefix}/share/swat/include/header.html
553 %{prefix}/share/swat/include/footer.html
554 %{prefix}/share/swat/using_samba/*
555 %config(noreplace) /etc/samba/lmhosts
556 %config(noreplace) /etc/samba/smb.conf
557 %config(noreplace) /etc/samba/recycle.conf
558 %config(noreplace) /etc/samba/samba-block.conf
559 %config(noreplace) /etc/samba/smbusers
560 /etc/samba/samba.stack
561 /etc/samba/samba.xinetd
563 /etc/rc.d/init.d/winbind
564 /etc/logrotate.d/samba
565 %config(noreplace) /etc/pam.d/samba
570 %dir /etc/codepages/*
571 %attr(755,root,root) %dir /var/cache/samba
574 %attr(1777,root,root) %dir /var/spool/samba
575 %attr(-,root,root) /lib/libnss_winbind.so
576 %attr(-,root,root) /lib/security/pam_winbind.so
577 %attr(-,root,root) /lib/security/pam_smbpass.so