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
242 ln -sf %{prefix}/sbin/smbmnt $RPM_BUILD_ROOT%{prefix}/bin/smbmnt
244 # This allows us to get away without duplicating code that
245 # sombody else can maintain for us.
247 make BASEDIR=$RPM_BUILD_ROOT/usr \
248 LIBDIR=$RPM_BUILD_ROOT/etc/samba \
249 VARDIR=$RPM_BUILD_ROOT/var \
250 SBINDIR=$RPM_BUILD_ROOT%{prefix}/sbin \
251 BINDIR=$RPM_BUILD_ROOT%{prefix}/bin \
252 MANDIR=$RPM_BUILD_ROOTMANDIR_MACRO \
253 CODEPAGEDIR=$RPM_BUILD_ROOT/etc/codepages \
254 SWATDIR=$RPM_BUILD_ROOT/usr/share/swat \
255 SAMBABOOK=$RPM_BUILD_ROOT/usr/share/swat/using_samba \
256 installman installcp installswat
259 # Install codepage source files
260 for i in source/codepages/codepage_def.* source/codepages/*.TXT
262 install -m644 $i $RPM_BUILD_ROOT/etc/codepages/src
265 # Install the nsswitch wins library
266 install -m755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/lib
268 # Make link for wins resolver
269 ( cd $RPM_BUILD_ROOT/lib; ln -sf libnss_wins.so libnss_wins.so.2; )
271 # Install winbind shared libraries
272 install -m755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/lib
273 install -m755 source/nsswitch/pam_winbind.so $RPM_BUILD_ROOT/lib/security
275 # Install pam_smbpass.so
276 install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/lib/security
278 # Install the VFS modules
279 install -m755 examples/VFS/recycle/recycle.so $RPM_BUILD_ROOT%{prefix}/lib/samba/vfs
280 install -m644 examples/VFS/recycle/recycle.conf $RPM_BUILD_ROOT/etc/samba/
281 install -m755 examples/VFS/block/block.so $RPM_BUILD_ROOT%{prefix}/lib/samba/vfs
282 install -m644 examples/VFS/block/samba-block.conf $RPM_BUILD_ROOT/etc/samba/
283 install -m755 examples/VFS/audit.so $RPM_BUILD_ROOT%{prefix}/lib/samba/vfs
285 # clean out VFS directory since it will get installed as documentation later
286 (cd examples/VFS; make clean)
289 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{prefix}/lib/
290 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{prefix}/lib/
291 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{prefix}/include/
293 # Install SWAT helper files
294 for i in swat/help/*.html docs/htmldocs/*.html
296 install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/help
298 for i in swat/images/*.gif
300 install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/images
302 for i in swat/include/*.html
304 install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/include
307 # Install the miscellany
308 install -m644 swat/README $RPM_BUILD_ROOT%{prefix}/share/swat
309 install -m755 packaging/RedHat/smbprint $RPM_BUILD_ROOT%{prefix}/bin
310 install -m755 packaging/RedHat/smb.init $RPM_BUILD_ROOT/etc/rc.d/init.d/smb
311 install -m755 packaging/RedHat/winbind.init $RPM_BUILD_ROOT/etc/rc.d/init.d/winbind
312 install -m755 packaging/RedHat/smb.init $RPM_BUILD_ROOT%{prefix}/sbin/samba
313 install -m644 packaging/RedHat/samba.log $RPM_BUILD_ROOT/etc/logrotate.d/samba
314 install -m644 packaging/RedHat/smb.conf $RPM_BUILD_ROOT/etc/samba/smb.conf
315 install -m644 packaging/RedHat/smbusers $RPM_BUILD_ROOT/etc/samba/smbusers
316 install -m644 packaging/RedHat/samba.pamd $RPM_BUILD_ROOT/etc/pam.d/samba
317 install -m644 packaging/RedHat/samba.pamd.stack $RPM_BUILD_ROOT/etc/samba/samba.stack
318 install -m644 packaging/RedHat/samba.xinetd $RPM_BUILD_ROOT/etc/samba/samba.xinetd
319 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT/etc/samba/lmhosts
322 rm -rf $RPM_BUILD_ROOT
325 /sbin/chkconfig --add smb
326 /sbin/chkconfig --add winbind
327 /sbin/chkconfig smb off
328 /sbin/chkconfig winbind off
330 echo "Looking for old /etc/smb.conf..."
331 if [ -f /etc/smb.conf -a ! -f /etc/samba/smb.conf ]; then
332 echo "Moving old /etc/smb.conf to /etc/samba/smb.conf"
333 mv /etc/smb.conf /etc/samba/smb.conf
336 echo "Looking for old /etc/smbusers..."
337 if [ -f /etc/smbusers -a ! -f /etc/samba/smbusers ]; then
338 echo "Moving old /etc/smbusers to /etc/samba/smbusers"
339 mv /etc/smbusers /etc/samba/smbusers
342 echo "Looking for old /etc/lmhosts..."
343 if [ -f /etc/lmhosts -a ! -f /etc/samba/lmhosts ]; then
344 echo "Moving old /etc/lmhosts to /etc/samba/lmhosts"
345 mv /etc/lmhosts /etc/samba/lmhosts
348 echo "Looking for old /etc/MACHINE.SID..."
349 if [ -f /etc/MACHINE.SID -a ! -f /etc/samba/MACHINE.SID ]; then
350 echo "Moving old /etc/MACHINE.SID to /etc/samba/MACHINE.SID"
351 mv /etc/MACHINE.SID /etc/samba/MACHINE.SID
354 echo "Looking for old /etc/smbpasswd..."
355 if [ -f /etc/smbpasswd -a ! -f /etc/samba/smbpasswd ]; then
356 echo "Moving old /etc/smbpasswd to /etc/samba/smbpasswd"
357 mv /etc/smbpasswd /etc/samba/smbpasswd
361 # For 2.2.1 we move the tdb files from /var/lock/samba to /var/cache/samba
362 # to preserve across reboots.
364 echo "Moving tdb files in /var/lock/samba/*.tdb to /var/cache/samba/*.tdb"
365 for i in /var/lock/samba/*.tdb
368 newname=`echo $i | sed -e's|var\/lock\/samba|var\/cache\/samba|'`
369 echo "Moving $i to $newname"
374 # Remove the transient tdb files.
375 if [ -e /var/cache/samba/brlock.tdb ]; then
376 rm -f /var/cache/samba/brlock.tdb
379 if [ -e /var/cache/samba/unexpected.tdb ]; then
380 rm -f /var/cache/samba/unexpected.tdb
383 if [ -e /var/cache/samba/connections.tdb ]; then
384 rm -f /var/cache/samba/connections.tdb
387 if [ -e /var/cache/samba/locking.tdb ]; then
388 rm -f /var/cache/samba/locking.tdb
391 if [ -e /var/cache/samba/messages.tdb ]; then
392 rm -f /var/cache/samba/messages.tdb
395 if [ -d /var/lock/samba ]; then
396 rm -rf /var/lock/samba
399 # Add swat entry to /etc/services if not already there.
400 if !( grep ^[:space:]*swat /etc/services > /dev/null ) then
401 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
404 # Add swat entry to /etc/inetd.conf if needed.
405 if [ -f /etc/inetd.conf ]; then
406 if !( grep ^[:space:]*swat /etc/inetd.conf > /dev/null ) then
407 echo 'swat stream tcp nowait.400 root %{prefix}/sbin/swat swat' >> /etc/inetd.conf
408 killall -1 inetd || :
412 # Add swat entry to xinetd.d if needed.
413 if [ -d $RPM_BUILD_ROOT/etc/xinetd.d -a ! -f /etc/xinetd.d/swat ]; then
414 mv /etc/samba/samba.xinetd /etc/xinetd.d/swat
416 rm -f /etc/samba/samba.xinetd
419 # Install the correct version of the samba pam file, depending on pam version.
420 if [ -f /lib/security/pam_stack.so ]; then
421 echo "Installing stack version of /etc/pam.d/samba..."
422 mv /etc/samba/samba.stack /etc/pam.d/samba
424 echo "Installing non-stack version of /etc/pam.d/samba..."
425 rm -f /etc/samba/samba.stack
428 # Create winbind nss client symlink
430 if [ -e /lib/libnss_winbind.so ]; then
431 ln -sf /lib/libnss_winbind.so /lib/libnss_winbind.so.2
436 /sbin/chkconfig --del smb
438 # We want to remove the browse.dat and wins.dat files so they can not interfer with a new version of samba!
439 if [ -e /var/cache/samba/browse.dat ]; then
440 rm -f /var/cache/samba/browse.dat
442 if [ -e /var/cache/samba/wins.dat ]; then
443 rm -f /var/cache/samba/wins.dat
446 # Remove the transient tdb files.
447 if [ -e /var/cache/samba/brlock.tdb ]; then
448 rm -f /var/cache/samba/brlock.tdb
451 if [ -e /var/cache/samba/unexpected.tdb ]; then
452 rm -f /var/cache/samba/unexpected.tdb
455 if [ -e /var/cache/samba/connections.tdb ]; then
456 rm -f /var/cache/samba/connections.tdb
459 if [ -e /var/cache/samba/locking.tdb ]; then
460 rm -f /var/cache/samba/locking.tdb
463 if [ -e /var/cache/samba/messages.tdb ]; then
464 rm -f /var/cache/samba/messages.tdb
467 # Remove winbind nss client symlink
469 if [ -L /lib/libnss_winbind.so.2 ]; then
470 rm -f /lib/libnss_winbind.so.2
475 # Only delete remnants of samba if this is the final deletion.
477 if [ -x /etc/pam.d/samba ]; then
478 rm -f /etc/pam.d/samba
480 if [ -e /var/log/samba ]; then
481 rm -rf /var/log/samba
483 if [ -e /var/cache/samba ]; then
484 rm -rf /var/cache/samba
487 # Remove swat entries from /etc/inetd.conf and /etc/services
490 if [ -f /etc/inetd.conf ]; then
491 # preserve inetd.conf permissions.
492 cp -p /etc/inetd.conf $tmpfile
493 sed -e '/^[:space:]*swat.*$/d' /etc/inetd.conf > $tmpfile
494 mv $tmpfile inetd.conf
496 # preserve services permissions.
497 cp -p /etc/services $tmpfile
498 sed -e '/^[:space:]*swat.*$/d' /etc/services > $tmpfile
499 mv $tmpfile /etc/services
501 # Remove swat entry from /etc/xinetd.d
502 if [ -f /etc/xinetd.d/swat ]; then
503 rm -r /etc/xinetd.d/swat
507 %triggerpostun -- samba < samba-2.0.0
509 /sbin/chkconfig --add smb
513 %defattr(-,root,root)
514 %doc README COPYING Manifest Read-Manifest-Now
515 %doc WHATSNEW.txt Roadmap
522 %{prefix}/sbin/smbmnt
523 %{prefix}/sbin/smbmount
524 %{prefix}/sbin/smbumount
525 %{prefix}/sbin/winbindd
528 %{prefix}/bin/mksmbpasswd.sh
529 %{prefix}/bin/smbclient
530 %{prefix}/bin/smbspool
531 %{prefix}/bin/rpcclient
532 %{prefix}/bin/testparm
533 %{prefix}/bin/testprns
534 %{prefix}/bin/findsmb
535 %{prefix}/bin/smbstatus
536 %{prefix}/bin/nmblookup
537 %{prefix}/bin/make_smbcodepage
538 %{prefix}/bin/make_unicodemap
539 %{prefix}/bin/make_printerdef
540 %{prefix}/bin/smbpasswd
542 %{prefix}/bin/smbprint
543 %{prefix}/bin/smbcontrol
544 %{prefix}/bin/smbcacls
546 %attr(755,root,root) /lib/libnss_wins.s*
547 %attr(755,root,root) %{prefix}/lib/samba/vfs/*.so
548 %{prefix}/include/libsmbclient.h
549 %{prefix}/lib/libsmbclient.a
550 %{prefix}/lib/libsmbclient.so
551 %{prefix}/share/swat/help/*
552 %{prefix}/share/swat/images/*
553 %{prefix}/share/swat/include/header.html
554 %{prefix}/share/swat/include/footer.html
555 %{prefix}/share/swat/using_samba/*
556 %config(noreplace) /etc/samba/lmhosts
557 %config(noreplace) /etc/samba/smb.conf
558 %config(noreplace) /etc/samba/recycle.conf
559 %config(noreplace) /etc/samba/samba-block.conf
560 %config(noreplace) /etc/samba/smbusers
561 /etc/samba/samba.stack
562 /etc/samba/samba.xinetd
564 /etc/rc.d/init.d/winbind
565 /etc/logrotate.d/samba
566 %config(noreplace) /etc/pam.d/samba
571 %dir /etc/codepages/*
572 %attr(755,root,root) %dir /var/cache/samba
575 %attr(1777,root,root) %dir /var/spool/samba
576 %attr(-,root,root) /lib/libnss_winbind.so
577 %attr(-,root,root) /lib/security/pam_winbind.so
578 %attr(-,root,root) /lib/security/pam_smbpass.so