Adding Buchan Milne's updates.
authorJohn Terpstra <jht@samba.org>
Wed, 30 Oct 2002 03:50:23 +0000 (03:50 +0000)
committerJohn Terpstra <jht@samba.org>
Wed, 30 Oct 2002 03:50:23 +0000 (03:50 +0000)
(This used to be commit d816c35c1d8db343c76a32a6d01952d2c192b092)

18 files changed:
packaging/Mandrake/README
packaging/Mandrake/README.mandrake [new file with mode: 0644]
packaging/Mandrake/makerpms-cvs.sh [new file with mode: 0644]
packaging/Mandrake/makerpms.sh.tmpl
packaging/Mandrake/samba-2.2.0-buildroot.patch [new file with mode: 0644]
packaging/Mandrake/samba-2.2.0-gawk.patch [new file with mode: 0644]
packaging/Mandrake/samba-2.2.5-gp-reloc-fix.patch [new file with mode: 0644]
packaging/Mandrake/samba-print-pdf.sh [new file with mode: 0644]
packaging/Mandrake/samba-slapd-include.conf [new file with mode: 0644]
packaging/Mandrake/samba.log
packaging/Mandrake/samba.xinetd
packaging/Mandrake/samba2.spec.tmpl
packaging/Mandrake/smb.conf
packaging/Mandrake/smb.init
packaging/Mandrake/smbmount-sbin.patch [new file with mode: 0644]
packaging/Mandrake/smbw.patch [new file with mode: 0644]
packaging/Mandrake/system-auth-winbind.pamd [new file with mode: 0644]
packaging/Mandrake/winbind.init [new file with mode: 0644]

index 1c5bb30edc0e4c4844e3fe288bd8ab36bc028581..5ccfb1d22b3651a822ef1277cb8daa8fb390dc39 100644 (file)
@@ -1,7 +1,7 @@
 Preparation Date: Sat Apr 14 2001
 Preparation Date: Sat Apr 14 2001
-Preparer:        John H Terpstra <jht@samba.org>
+Preparer:      Gerald Carter <jerry@samba.org>
 
 
-Instructions:  Preparing Samba Packages for Mandrake Linux 7.2
+Instructions:  Preparing Samba Packages for Mandrake Linux 8.x
 ===============================================================
 
 We provide support only for current versions of Mandrake Linux.
 ===============================================================
 
 We provide support only for current versions of Mandrake Linux.
diff --git a/packaging/Mandrake/README.mandrake b/packaging/Mandrake/README.mandrake
new file mode 100644 (file)
index 0000000..83920f2
--- /dev/null
@@ -0,0 +1,117 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+The Mandrake samba spec file used for packaging for Mandrake and cooker
+is now also used by the makerpms.sh script, and you can pass any options
+that you would normally pass to rpm via the makerpms.sh script.
+
+Note that only release after 8.1 support passing options using 
+"--with <option>" syntax. The following options are available when
+building with the script:
+
+- --with|--without ldap
+- --with|--without acl
+- --with|--without winbind
+- --with|--without  wins
+- --with vscan
+Using "--with vscan" requires that you place a copy of the samba-vscan
+tarball (coverted to bz2 using bzme) from:
+http://prdownloads.sourceforge.net/openantivirus/samba-vscan-0.2.5a.tar.gz?download in your rpm source directory:
+
+cp samba-vscan-0.2.5a.tar.gz `rpm --eval "%_sourcedir"`
+bzme `rpm --eval "%_sourcedir"`/samba-vscan-0.2.5a.tar.gz
+
+When using "--with vscan" you will probably want to enable a virus scanner
+also:
+- --with fprot
+- --with kaspersky
+- --with mks
+- --with openantivirus
+- --with sophos
+- --with symantec
+- --with trend
+
+You may need to do additional setup for your virus scanner to get this to
+work, please see ../../examples/VFS/<scanner>/INSTALL (after having started
+a build with "sh makerpms.sh --with vscan")
+
+Note that only sophos has been tested with the spec, but the rest should work
+(after the preparation). Reports of working scanners are welcome, and please
+report any that do not work (preferably with a fix :-)).
+
+So, to build ldap-enable RPMs for with antivirus support with sophos, but
+no acl support, use:
+sh makerpms.sh --with ldap --with vscan --with sophos --without acl
+
+The same features can be enabled on Mandrake 7.2/8.0 by editing samba2.spec, 
+and changing the 0 to 1 to enable the option:
+
+%if %build_mdk80
+%define build_acl 0
+%define build_winbind 0
+%define build_wins 0
+%define build_ldap 0
+%endif
+
+Similar sections exist for the virus scanning options.
+
+(If you haven't rebuilt RPMs before, it is suggested that you take a
+brief look through http://www.linux-mandrake.com/howtos/mdk-rpm/,
+specifically sections 3.1 and 3.2)
+
+The defaults for Mandrake 8.1 and 8.2 are shown below:
+%if %build_mdk82
+%define build_acl 1
+%define build_winbind 1
+%define build_wins 1
+%define build_ldap 0
+%endif
+
+%if %build_mdk81
+%define build_acl 1
+%define build_winbind 0
+%define build_wins 0
+%define build_ldap 0
+%endif
+
+Note that building with LDAP support will only allow you to use smbpasswd's
+stored in ldap, not in the local smbpasswd file. From 2.2.5 onwards in the 
+2.2 tree, ldap-enable RPMs now carry an ldap modifier to indicate this (for
+example, samba-server becomes samba-server-ldap).
+
+Building with acl requires that you have the acl development libraries. 
+The libraries are standard on 8.1 and 8.2.
+ACLs can be used on Mandrake 8.0 with the updated kernel (to support XFS)
+if you install the RPMs available at 
+http://ranger.dnsalias.com/mandrake/samba/RPMS/8.0/samba-2.2.1a_xfs/
+
+Note that precompiled binaries of samba are also available on my site:
+http://ranger.dnsalias.com/mandrake/samba
+and that of Sylvestre Taburet:
+http://people.mandrakesoft.com/~staburet/samba/
+
+If you have any problems with these RPMs, please send email to both
+bgmilne@cae.co.za and staburet@mandrakesoft.com
+
+These RPMs are provided as-is, are not official, and can not be 
+supported by Mandrakesoft. However, we will do our best to provide
+reliable and well-packaged RPMS, since we use them on our own servers
+and those of clients.
+
+This file is signed with my gpg key, a copy of my public key is available
+at http://ranger.dnsalias.com/bgmilne.asc. The finger-print for this key 
+follows:
+1024D/60D204A7 2919 E232 5610 A038 87B1 72D6 AC92 BA50 60D2 04A7
+
+Recent posts by me on samba@samba.org have been signed with this key,
+in case you really want to verify who I am to some extent.
+
+Buchan Milne
+18 June 2002
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.0.6 (GNU/Linux)
+
+iD8DBQE9D2h3rJK6UGDSBKcRAhtJAKC0fVkIMETgRxccrwLBcKZKHllCIACeNcZ9
+bxGZSTOHs57ir3wFR+3s0XM=
+=ifKf
+-----END PGP SIGNATURE-----
diff --git a/packaging/Mandrake/makerpms-cvs.sh b/packaging/Mandrake/makerpms-cvs.sh
new file mode 100644 (file)
index 0000000..72c75b7
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/bash
+# makerpms-cvs.sh
+# A quick script to build RPMs from cvs to test packaging
+# Buchan Milne <bgmilne@cae.co.za>
+
+[ $# -lt 1 ] &&  echo "Usage: $0 <Samba version>" && exit 1
+
+VERSION=$1
+RELEASE=0.`date +%Y%m%d`
+shift
+
+# Replace PRELEASE and PVERSION with release number in all files ending with
+# .tmpl
+
+FILES=$(find . -name "*.tmpl" -type f)
+
+for i in $FILES;do 
+       NEW=$(echo $i|sed -e 's/\.tmpl//g'); 
+       cat $i |sed -e 's/PVERSION/'$VERSION'/g; s/PRELEASE/'$RELEASE'/g'> $NEW ;
+done
+
+#Change up three directories, rename directory to samba-$VERSION, change back
+#then run makerpms.sh
+
+(
+CURRENT=$(pwd)
+cd $(dirname $(dirname $(dirname $CURRENT)))
+SAMBA_DIR=$(basename $(dirname $(dirname $CURRENT)))
+mv $SAMBA_DIR samba-$VERSION
+cd samba-$VERSION/packaging/Mandrake
+sh makerpms.sh $@
+cd $(dirname $(dirname $(dirname $CURRENT)))
+mv samba-$VERSION $SAMBA_DIR
+)
index c4ad9c6b5811b9941d3f0aca7cb5ac73d509af6d..ba4eff0e2b10cc21bdd830c4e6195694a176b1d8 100644 (file)
@@ -1,16 +1,77 @@
 #!/bin/sh
 #!/bin/sh
-# Copyright (C) 1998 John H Terpstra, 1999 K Spoon
+# Copyright (C) John H Terpstra 1998-2002
+# Updated for RPM 3 by Jochen Wiedmann, joe@ispsoft.de
+# Changed for a generic tar file rebuild by abartlet@pcug.org.au
+# Taken from Red Hat build area by JHT
+# Changed by John H Terpstra to build on RH8.1 - should also work for earlier versions jht@samba.org
+# Changes from Buchan Milne <bgmilne@cae.co.za>
+
+# The following allows environment variables to override the target directories
+#   the alternative is to have a file in your home directory calles .rpmmacros
+#   containing the following:
+#   %_topdir  /home/mylogin/RPM
 #
 #
-SPECDIR=/usr/src/RPM/SPECS
-SRCDIR=/usr/src/RPM/SOURCES
+
+# rpm --eval should always give a correct answer for this
+SPECDIR=`rpm --eval "%{_specdir}"`
+SRCDIR=`rpm --eval "%{_sourcedir}"`
+
+# At this point the (SPECDIR and) SRCDIR vaiables must have a value!
+
 USERID=`id -u`
 GRPID=`id -g`
 VERSION='PVERSION'
 
 USERID=`id -u`
 GRPID=`id -g`
 VERSION='PVERSION'
 
-( cd ../../.. ; mv samba samba-$VERSION; chown -R ${USERID}.${GRPID} ${SRCDIR}/samba-$VERSION )
-( cd ../../.. ; tar --exclude=CVS -czvf ${SRCDIR}/samba-$VERSION.tar.gz samba-$VERSION )
-( cd ../../.. ; mv samba-$VERSION samba )
-cp -a *.spec $SPECDIR
-cp -a *.patch smb.* samba.log $SRCDIR
-cd $SPECDIR
-rpm -ba -v samba2.spec
+RPMVER=`rpm --version | awk '{print $3}'`
+echo The RPM Version on this machine is: $RPMVER
+
+case $RPMVER in
+    2*)
+       echo Building for RPM v2.x
+       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba2.spec > samba.spec
+       ;;
+    3*)
+       echo Building for RPM v3.x
+       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba2.spec > samba.spec
+       ;;
+    4*)
+       echo Building for RPM v4.x
+       sed -e "s/MANDIR_MACRO/\%\{_mandir\}/g" < samba2.spec > samba.spec
+       ;;
+    *)
+       echo "Unknown RPM version: `rpm --version`"
+       exit 1
+       ;;
+esac
+
+( cd ../../source; if [ -f Makefile ]; then make distclean; fi )
+( cd ../../.. ; chown -R ${USERID}.${GRPID} samba-${VERSION} )
+echo "Compressing the source as bzip2, may take a while ..."
+( cd ../../.. ; tar --exclude=CVS -cjf ${SRCDIR}/samba-${VERSION}.tar.bz2 samba-${VERSION} )
+
+cp -av samba.spec ${SPECDIR}
+# cp -a *.patch.bz2 *.xpm.bz2 smb.* samba.xinetd samba.log $SRCDIR
+# Prepare to allow straight patches synced from Mandrake cvs:
+# Updating of sources and patches can be done more easily and accurately
+# by using info in the spec file. It won't work for files that use an rpm
+# macro in their name, but that shouldn't be a problem.
+
+SOURCES=`awk '/^Source/ {print $2}' samba.spec |grep -v "%{"`
+PATCHES=`awk  '/^Patch/ {print $2}' samba.spec`
+
+for i in $PATCHES $SOURCES;do
+       # We have two cases to fix, one where it's bzip2'ed
+       # in the spec and not in CVS, one where it's bzip2'ed 
+       # in CVS but not in the spec
+       [ -e $i ] && cp -av $i $SRCDIR
+       i_nobz2=`echo $i|sed -e 's/.bz2$//'`
+       i_bz2=$i.bz2
+       [ -e $i_nobz2 ] && bzip2 -kf $i_nobz2  && mv -fv $i $SRCDIR
+       [ -e $i_bz2 ] && bunzip2 -kf $i_bz2 && mv -fv $i $SRCDIR
+done
+
+echo Getting Ready to build release package
+cd ${SPECDIR}
+rpm -ba -v --clean --rmsource samba.spec $@
+
+echo Done.
diff --git a/packaging/Mandrake/samba-2.2.0-buildroot.patch b/packaging/Mandrake/samba-2.2.0-buildroot.patch
new file mode 100644 (file)
index 0000000..72091a1
--- /dev/null
@@ -0,0 +1,15 @@
+--- samba-2.2.0/source/script/installbin.sh    Fri Jan 12 21:28:02 2001
++++ samba-2.2.0/source/script/installbin.sh.207        Thu Apr 19 09:40:57 2001
+@@ -33,9 +33,9 @@
+  chmod $INSTALLPERMS $BINDIR/$p2
+  # this is a special case, mount needs this in a specific location
+- if [ $p2 = smbmount ]; then
+-   ln -sf $BINDIR/$p2 /sbin/mount.smbfs
+- fi
++ #if [ $p2 = smbmount ]; then
++ #  ln -sf $BINDIR/$p2 /sbin/mount.smbfs
++ #fi
+ done
diff --git a/packaging/Mandrake/samba-2.2.0-gawk.patch b/packaging/Mandrake/samba-2.2.0-gawk.patch
new file mode 100644 (file)
index 0000000..b77bc3a
--- /dev/null
@@ -0,0 +1,11 @@
+--- samba-2.2.0/source/script/convert_smbpasswd.gawk   Thu Nov  5 04:50:17 1998
++++ samba-2.2.0/source/script/convert_smbpasswd        Thu Apr 19 08:43:44 2001
+@@ -7,7 +7,7 @@
+ # with trying to work out how to get the seconds since 1970
+ # in awk or the shell. JRA.
+ #
+-nawk 'BEGIN {FS=":"} 
++gawk 'BEGIN {FS=":"} 
+ {
+       if( $0 ~ "^#" ) {
+               print $0
diff --git a/packaging/Mandrake/samba-2.2.5-gp-reloc-fix.patch b/packaging/Mandrake/samba-2.2.5-gp-reloc-fix.patch
new file mode 100644 (file)
index 0000000..8888d66
--- /dev/null
@@ -0,0 +1,12 @@
+diff -ur samba-2.2.5.orig/examples/VFS/Makefile.in samba-2.2.5/examples/VFS/Makefile.in
+--- samba-2.2.5.orig/examples/VFS/Makefile.in  2002-06-17 20:35:09.000000000 +0200
++++ samba-2.2.5/examples/VFS/Makefile.in       2002-06-30 16:43:15.000000000 +0200
+@@ -4,7 +4,7 @@
+ CC=@CC@
+ LIBTOOL=@LIBTOOL@
+-CFLAGS=@CFLAGS@
++CFLAGS=@CFLAGS@ -DPIC -fPIC
+ LDFLAGS=@LDFLAGS@
+ VFS_OBJS=audit.so skel.so block/block.so recycle/recycle.so
diff --git a/packaging/Mandrake/samba-print-pdf.sh b/packaging/Mandrake/samba-print-pdf.sh
new file mode 100644 (file)
index 0000000..5c744f0
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/bash
+# samba-print-pdf
+# This is a script which allows you to set up a virtual printer on samba
+# which will take the file (generated by a postscript filter on windows)
+# and turn it into a PDF, informing the user of where it is when it
+# is done
+#
+# Buchan Milne <bgmilne@cae.co.za> 20020723
+#
+# Arguments:
+# $1 = file (usually passed with %s from samba)
+# $2 = unix prefix to where to place the file (~%u should work)
+# $3 = windows prefix to the same location (\\%L\%u should work)
+# $4 = user/computer to send a notification to (%u or %m)
+# $5 = IP address of client (%I)
+
+
+PS2PDF=ps2pdf13 
+OPTIONS="-dAutoFilterColorImages=false -sColorImageFilter=FlateEncode"
+INPUT=$1
+KEEP_PS=1
+PERMS=640
+INFILE=$(basename $INPUT)
+BASEFILE=pdf-service
+
+#make a temp file to use for the output of the PDF
+OUTPUT=`mktemp -q $2/$BASEFILE-XXXXXX`
+if [ $? -ne 0 ]; then
+       echo "$0: Can't create temp file $2/$BASEFILE-XXXXXX, exiting..."
+       exit 1
+fi
+                                                                       
+WIN_OUTPUT="$3\\`basename $OUTPUT`"
+
+# create the PDF:
+$PS2PDF $OPTOINS $INPUT $OUTPUT.pdf >/dev/null 2>&1
+
+# Generate a message to send to the user, and deal with the original file:
+MESSAGE=$(echo "Your PDF file has been created as $WIN_OUTPUT.pdf\n")
+
+if [ $KEEP_PS ];then
+       mv $INPUT $OUTPUT.ps
+       MESSAGE=$(echo "$MESSAGE and your postscript file as $WIN_OUTPUT.ps")
+       # Fix permissions on the generated files
+       chmod $PERMS $OUTPUT.ps
+else
+       rm -f $INPUT
+       chmod $PERMS $OUTPUT.ps $OUTPUT.pdf
+       # Fix permissions on the generated files
+fi
+                                                               
+chmod $PERMS $OUTPUT.ps $OUTPUT.pdf
+
+#Remove empty file from mktemp:
+rm -f $OUTPUT
+
+# Send notification to user
+echo -e $MESSAGE|smbclient -M $4 -I $5 -U "PDF Generator" >/dev/null 2>&1
+
diff --git a/packaging/Mandrake/samba-slapd-include.conf b/packaging/Mandrake/samba-slapd-include.conf
new file mode 100644 (file)
index 0000000..9c065b6
--- /dev/null
@@ -0,0 +1,15 @@
+# You should either include this file into your
+# /etc/openldap/slapd.conf, or add the contents (after editing), inside
+# the db definition your samba server will use.
+
+
+# Index the rid for samba:
+index  rid             eq
+
+
+# Basic samba acl:
+access to attrs=lmPassword,ntPassword
+       by dn="cn=root,dc=mydomain,dc=com" write
+       by dn="uid=root,ou=People,dc=mydomain,dc=com" write
+       by * none
+
index 7dc1667bafe30d2c901a11ac4e36904520d2da8a..4e8b44b60e78f3c334d951c68d5e9a2b9fb469ed 100644 (file)
@@ -1,4 +1,4 @@
-/var/log/samba/log.nmbd {
+/var/log/samba/log.nmb {
     notifempty
     missingok
     postrotate
     notifempty
     missingok
     postrotate
@@ -6,7 +6,7 @@
     endscript
 }
 
     endscript
 }
 
-/var/log/samba/log.smbd {
+/var/log/samba/log.smb {
     notifempty
     missingok
     postrotate
     notifempty
     missingok
     postrotate
index a6dea1f7405b4550df0abf4fda6d25578ec1436e..59910336bbac72d03d1e88c49f0ddb40b80a5666 100644 (file)
@@ -7,7 +7,7 @@ service swat
        port    = 901
        socket_type     = stream
        wait    = no
        port    = 901
        socket_type     = stream
        wait    = no
-       only_from = localhost
+       only_from = 127.0.0.1
        user    = root
        server  = /usr/sbin/swat
        log_on_failure  += USERID
        user    = root
        server  = /usr/sbin/swat
        log_on_failure  += USERID
index 5bc92535f80c5b5aa54a664fe9607c1376ed5cf5..e21a1484863694b75fdf3a9ed3e7ff44b425330e 100644 (file)
-Summary: Samba SMB client and server
-Name: samba
-Version: PVERSION
-Release: PRELEASE
-Copyright: GNU GPL version 2
-Group: Networking
-Source: ftp://samba.org/pub/samba/samba-%{version}.tar.gz
-Packager: Gerald (Jerry) Carter [Samba-Team] <jerry@samba.org>
-Requires: pam >= 0.72 kernel >= 2.2.1 glibc >= 2.1.2
-Prereq: chkconfig fileutils
-BuildRoot: /var/tmp/samba
+%define pkg_name samba
+%define ver 2.2.5
+%define rel 17mdk
+%define vscanver 0.2.5c
+
+# Determine whether this is the system samba or not.
+%define build_system   0
+%if %build_system
+%define samba_major    %{null}
+%else
+%define samba_major    3
+%global _iconsdir      %{_datadir}/icons/
+%global _miconsdir     %{_datadir}/icons/mini
+%global _liconsdir     %{_datadir}/icons/large
+%global _menudir       %{_libdir}/menu
+#%%%%global __prefix           /opt/samba%{samba_major}
+
+%global _mandir                %{_datadir}/man
+%endif
+
+# 2.2.4 and 1 replace by samba-team at release
+%define pversion PVERSION
+%define prelease PRELEASE
+# For testing this setup:
+#%define pversion1 2.2.5
+#%define prelease1 %(date +%Y%m%d)
+
+#Check to see if p(version|release) has been replaced (1 if replaced)
+%define have_pversion %(if [ "%pversion" = `echo "pversion" |tr '[:lower:]' '[:upper:]'` ];then echo 0; else echo 1; fi)
+%define have_prelease %(if [ "%prelease" = `echo "prelease" |tr '[:lower:]' '[:upper:]'` ];then echo 0; else echo 1; fi)
+
+# We might have a prerelease:
+%define have_pre %(echo %pversion|awk '{p=0} /[a-z,A-Z][a-z,A-Z]/ {p=1} {print p}')
+%if %have_pre
+%define pre_ver %(perl -e '$name="%pversion"; print ($name =~ /(.*?)[a-z]/);')
+%define pre_pre %(echo %pversion|sed -e 's/%pre_ver//g')
+%endif
+
+
+# Check to see if we are running a build from a tarball release from samba.org
+# (%have_pversion) If so, disable vscan, unless explicitly requested
+# (--with vscan).
+%define build_vscan 1
+%if %have_pversion
+%define build_vscan 0
+%{?_with_vscan: %define build_vscan 1}
+%endif
+
+# We now do detection of the Mandrake release we are building on:
+#%define build_cooker %(if [ `awk '{print $3}' /etc/mandrake-release` = "Cooker" ];then echo 1; else echo 0; fi)
+#%define build_cooker %(if [[ `cat /etc/mandrake-release|grep Cooker` ]];then echo 1; else echo 0; fi)
+%define build_mdk91 %(if [ `awk '{print $4}' /etc/mandrake-release` = 9.1 ];then echo 1; else echo 0; fi)
+%define build_mdk90 %(if [ `awk '{print $4}' /etc/mandrake-release` = 9.0 ];then echo 1; else echo 0; fi)
+%define build_mdk83 %(if [ `awk '{print $4}' /etc/mandrake-release` = 8.3 ];then echo 1; else echo 0; fi)
+%define build_mdk82 %(if [ `awk '{print $4}' /etc/mandrake-release` = 8.2 ];then echo 1; else echo 0; fi)
+%define build_mdk81 %(if [ `awk '{print $4}' /etc/mandrake-release` = 8.1 ];then echo 1; else echo 0; fi)
+%define build_mdk80 %(if [ `awk '{print $4}' /etc/mandrake-release` = 8.0 ];then echo 1; else echo 0; fi)
+%define build_mdk72 %(if [ `awk '{print $4}' /etc/mandrake-release` = 7.2 ];then echo 1; else echo 0; fi)
+%define build_non_default 0
+
+# Default options
+%define build_acl      1
+%define build_winbind  1
+%define build_wins     1
+%define build_ldap     1
+%define build_ads      1
+
+# Set defaults for each version
+%if %build_mdk91
+%endif
+
+%if %build_mdk90
+%endif
+
+%if %build_mdk83
+%endif
+
+%if %build_mdk82
+%endif
+
+%if %build_mdk81
+%define build_winbind  0
+%define build_wins     0
+%endif
+
+%if %build_mdk80
+%define build_acl      0
+%define build_winbind  0
+%define build_wins     0
+%endif
+
+%if %build_mdk72
+%define build_acl      0
+%define build_winbind  0
+%define build_wins     0
+%endif
+
+# Allow commandline option overrides (borrowed from Vince's qmail srpm):
+# To use it, do rpm [-ba|--rebuild] --with 'xxx'
+# Check if the rpm was built with the defaults, otherwise we inform the user
+%define build_non_default 0
+%{?_with_acl: %{expand: %%define build_acl 1}}
+%{?_with_acl: %{expand: %%define build_non_default 1}}
+%{?_without_acl: %{expand: %%define build_acl 0}}
+%{?_without_acl: %{expand: %%define build_non_default 1}}
+%{?_with_winbind: %{expand: %%global build_winbind 1}}
+%{?_with_winbind: %{expand: %%define build_non_default 1}}
+%{?_without_winbind: %{expand: %%define build_winbind 0}}
+%{?_without_winbind: %{expand: %%define build_non_default 1}}
+%{?_with_wins: %{expand: %%global build_wins 1}}
+%{?_with_wins: %{expand: %%define build_non_default 1}}
+%{?_without_wins: %{expand: %%global build_wins 0}}
+%{?_without_wins: %{expand: %%define build_non_default 1}}
+%{?_with_ldap: %{expand: %%global build_ldap 1}}
+%{?_with_ldap: %{expand: %%define build_non_default 1}}
+%{?_without_ldap: %{expand: %%global build_ldap 0}}
+%{?_without_ldap: %{expand: %%define build_non_default 1}}
+%{?_with_ads: %{expand: %%define build_ads 1}}
+%{?_with_ads: %{expand: %%define build_non_default 1}}
+%{?_without_ads: %{expand: %%define build_ads 0}}
+%{?_without_ads: %{expand: %%define build_non_default 1}}
+
+# As if that weren't enough, we're going to try building with antivirus
+# support as an option also
+%define build_fprot 0
+%define build_kaspersky 0
+%define build_mks 0
+%define build_openantivirus 0
+%define build_sophos 0
+%define build_symantec 0
+%define build_trend 0
+%if %build_vscan
+%{?_with_fprot: %{expand: %%global build_fprot 1}}
+%{?_with_kaspersky: %{expand: %%global build_kaspersky 1}}
+%{?_with_mks: %{expand: %%global build_mks 1}}
+%{?_with_openav: %{expand: %%global build_openantivirus 1}}
+%{?_with_sophos: %{expand: %%global build_sophos 1}}
+%{?_with_symantec: %{expand: %%global build_symantec 1}}
+%{?_with_trend: %{expand: %%global build_trend 1}}
+%define vscandir "samba-vscan-%{vscanver}"
+%endif
+%define vfsdir "examples.bin/VFS"
+
+#Workaround missing macros in 8.x:
+%{!?perl_vendorlib: %{expand: %%global perl_vendorlib %{perl_sitearch}/../}}
+
+Summary: Samba SMB server.
+Name: %{pkg_name}%{samba_major}
+%if %have_pversion && %have_pre
+Version: %{pre_ver}
+%define source_ver %{pversion}
+%endif
+%if %have_pversion && !%have_pre
+Version: %{pversion}
+%define source_ver %{pversion}
+%endif
+%if !%have_pversion
+Version: %{ver}
+%define source_ver %{ver}
+%endif
+%if %have_prelease && !%have_pre
+Release: 1.%{prelease}mdk
+%endif
+%if %have_prelease && %have_pre
+Release: 0.%{pre_pre}.%{prelease}mdk
+%endif
+%if !%have_prelease
+Release: %{rel}
+%endif
+License: GPL
+Group: System/Servers
+Source: ftp://samba.org/pub/samba/samba-%{source_ver}.tar.bz2
+URL:   http://www.samba.org
+Source1: samba.log
+Source2: mount.smb
+Source3: samba.xinetd
+Source4: swat_48.xpm.bz2
+Source5: swat_32.xpm.bz2
+Source6: swat_16.xpm.bz2
+Source7: README.%{name}-mandrake-rpm
+%if %build_vscan
+Source8: samba-vscan-%{vscanver}.tar.bz2
+%endif
+Source10: samba-print-pdf.sh.bz2
+Patch1: smbw.patch.bz2
+Patch2: samba-glibc21.patch.bz2
+#Patch3: network-recycle_bin.patch.bz2
+Patch5: samba-2.2.0-gawk.patch.bz2
+Patch12: samba-2.2.0-buildroot.patch.bz2
+#Patch16: samba-mkdir.patch.bz2
+Patch17: samba-3.0-smbmount-sbin.patch.bz2
+#Patches 20-22 to get packaging synced from 2.2.2 to 3.0
+Patch20: samba-3.0-smb.conf.patch.bz2
+Patch21: samba-3.0-winbind.init.patch.bz2
+Patch22: samba-3.0-system-auth-winbind.patch.bz2
+Patch23: samba-3alpha20-destdir.patch.bz2
+#Patch24: samba-3.0alpha13-installman.patch.bz2
+Patch25: samba-3.0alpha13-config_lang.patch.bz2
+#Patch 26 belongs with 20-22
+Patch26: samba-3.0-smb.init.patch.bz2
+Requires: pam >= 0.64, samba-common = %{version}
+BuildRequires: pam-devel autoconf readline-devel
+%if %build_acl
+BuildRequires: libacl-devel
+%endif
+%if %build_mdk72
+BuildRequires: cups-devel
+%else
+BuildRequires: libcups-devel
+%endif
+%if %build_ldap
+BuildRequires: libldap-devel
+%endif
+%if %build_ads
+BuildRequires: libldap-devel krb5-devel
+%endif
+BuildRoot: %{_tmppath}/%{name}-root
 Prefix: /usr
 Prefix: /usr
+Prereq: /sbin/chkconfig /bin/mktemp /usr/bin/killall
+Prereq: fileutils sed /bin/grep
 
 %description
 Samba provides an SMB server which can be used to provide
 
 %description
 Samba provides an SMB server which can be used to provide
@@ -21,16 +229,57 @@ in Linux. Samba uses NetBIOS over TCP/IP (NetBT) protocols
 and does NOT need NetBEUI (Microsoft Raw NetBIOS frame)
 protocol.
 
 and does NOT need NetBEUI (Microsoft Raw NetBIOS frame)
 protocol.
 
-Samba-2.2 features working NT Domain Control capability and 
-includes the SWAT (Samba Web Administration Tool) that 
-allows samba's smb.conf file to be remotely managed using your 
+Samba-3.0 features working NT Domain Control capability and
+includes the SWAT (Samba Web Administration Tool) that
+allows samba's smb.conf file to be remotely managed using your
 favourite web browser. For the time being this is being
 favourite web browser. For the time being this is being
-enabled on TCP port 901 via inetd.
+enabled on TCP port 901 via xinetd. SWAT is now included in
+it's own subpackage, samba-swat.
 
 
-Users are advised to use Samba-2.2 as a Windows NT4
-Domain Controller only on networks that do NOT have a Windows
-NT Domain Controller. This release does NOT as yet have
-Backup Domain control ability.
+Please refer to the WHATSNEW.txt document for fixup information.
+This binary release includes encrypted password support.
+
+Please read the smb.conf file and ENCRYPTION.txt in the
+docs directory for implementation details.
+
+%if !%build_system
+NOTE: This is a prerelease of samba-%{samba_major}, not intended
+for production use. If something breaks, file a bug report.
+%endif
+
+%if %build_non_default
+WARNING: This RPM was built with command-line options. Please
+see README.%{name}-mandrake-rpm in the documentation for
+more information.
+%endif
+
+%package server
+URL:   http://www.samba.org
+Summary: Samba (SMB) server programs.
+Requires: %{name}-common = %{version}
+Group: Networking/Other
+Provides: samba
+Obsoletes: samba
+%if %build_system
+Obsoletes: samba-server-ldap
+Obsoletes: samba3-server
+%else
+Provides: samba-server
+%endif
+
+%description server
+Samba-server provides a SMB server which can be used to provide
+network services to SMB (sometimes called "Lan Manager")
+clients. Samba uses NetBIOS over TCP/IP (NetBT) protocols
+and does NOT need NetBEUI (Microsoft Raw NetBIOS frame)
+protocol.
+
+Samba-3.0 features working NT Domain Control capability and
+includes the SWAT (Samba Web Administration Tool) that
+allows samba's smb.conf file to be remotely managed using your
+favourite web browser. For the time being this is being
+enabled on TCP port 901 via xinetd. SWAT is now included in
+it's own subpackage, samba-swat.
 
 Please refer to the WHATSNEW.txt document for fixup information.
 This binary release includes encrypted password support.
 
 Please refer to the WHATSNEW.txt document for fixup information.
 This binary release includes encrypted password support.
@@ -38,263 +287,1434 @@ This binary release includes encrypted password support.
 Please read the smb.conf file and ENCRYPTION.txt in the
 docs directory for implementation details.
 
 Please read the smb.conf file and ENCRYPTION.txt in the
 docs directory for implementation details.
 
-%changelog
-* Mon May 21 2001 Gerald (Jerry) Carter <jerry@samba.org>
-  - removed docs/htmldocs and docs/manpages from /usr/share/docs
-    These het installed in /usr/share/swat already
-  - Fix for codepages and src not getting installed in the RPM
-  - Fixed minor typos
+%if %build_ldap
+This package was compiled with LDAP support, which means that 
+passwords can be stored in LDAP or in smbpasswd files.
+To migrate your passwords from smbpasswd into LDAP, try
+examples/LDAP/import_smbpasswd.pl using:
+%{_datadir}/%{name}/scripts/import_smbpasswd.pl </etc/%{name}/smbpasswd
+
+Scripts for managing users in LDAP have been added to 
+%{_datadir}/%{name}/scripts, configuration is in /etc/%{name}/smbldap_conf.pm
+%endif
+
+%if !%build_system
+NOTE: This is a prerelease of samba-%{samba_major}, not intended
+for production use. If something breaks, file a bug report.
+%endif
+
+%package client
+URL:   http://www.samba.org
+Summary: Samba (SMB) client programs.
+Group: Networking/Other
+Requires: %{name}-common = %{version}
+Obsoletes: smbfs
+%if %build_system
+Obsoletes: samba3-client
+%else
+Provides: samba-client
+%endif
+
+%description client
+Samba-client provides some SMB clients, which complement the built-in
+SMB filesystem in Linux. These allow the accessing of SMB shares, and
+printing to SMB printers.
+
+%if !%build_system
+NOTE: This is a prerelease of samba-%{samba_major}, not intended
+for production use. If something breaks, file a bug report.
+%endif
+
+%package common
+URL:   http://www.samba.org
+Summary: Files used by both Samba servers and clients.
+Group: System/Servers
+%if %build_system
+Obsoletes: samba-common-ldap
+Obsoletes: samba3-common
+%else
+Provides: samba-common
+%endif
+
+%description common
+Samba-common provides files necessary for both the server and client
+packages of Samba.
+
+%if !%build_system
+NOTE: This is a prerelease of samba-%{samba_major}, not intended
+for production use. If something breaks, file a bug report.
+%endif
+
+%package doc
+URL:   http://www.samba.org
+Summary: Documentation for Samba servers and clients.
+Group: System/Servers
+Requires: %{name}-common = %{version}
+%if %build_system
+Obsoletes: samba3-doc
+%else
+Provides: samba-doc
+%endif
+
+%description doc
+Samba-doc provides documentation files for both the server and client
+packages of Samba.
+
+%if !%build_system
+NOTE: This is a prerelease of samba-%{samba_major}, not intended
+for production use. If something breaks, file a bug report.
+%endif
+
+%package swat
+URL:   http://www.samba.org
+Summary: The Samba Web Administration Tool.
+Requires: %{name}-server = %{version}
+Requires: xinetd
+Group: System/Servers
+%if %build_system
+Obsoletes: samba-swat-ldap
+Obsoletes: samba3-swat
+%else
+Provides: samba-swat
+%endif
+
+%description swat
+SWAT (the Samba Web Administration Tool) allows samba's smb.conf file
+to be remotely managed using your favourite web browser. For the time
+being this is being enabled on TCP port 901 via xinetd. Note that
+SWAT does not use SSL encryption, nor does it preserve comments in
+your smb.conf file. Webmin uses SSL encryption by default, and
+preserves comments in configuration files, even if it does not display
+them, and is therefore the preferred method for remotely managing
+Samba.
+
+%if !%build_system
+NOTE: This is a prerelease of samba-%{samba_major}, not intended
+for production use. If something breaks, file a bug report.
+%endif
+
+%if %build_winbind
+%package winbind
+URL:   http://www.samba.org
+Summary: Samba-winbind daemon, utilities and documentation
+Group: System/Servers
+Requires: %{name}-common = %{version}
+%description winbind
+Provides the winbind daemon and testing tools to allow authentication 
+and group/user enumeration from a Windows or Samba domain controller.
+%endif
+
+%if !%build_system
+NOTE: This is a prerelease of samba-%{samba_major}, not intended
+for production use. If something breaks, file a bug report.
+%endif
+
+%if %build_wins
+%package -n nss_wins%{samba_major}
+URL:   http://www.samba.org
+Summary: Name Service Switch service for WINS
+Group: System/Servers
+Requires: %{name}-common = %{version}
+PreReq: glibc
+%description -n nss_wins%{samba_major}
+Provides the libnss_wins shared library which resolves NetBIOS names to 
+IP addresses.
+%endif
+
+%if !%build_system
+NOTE: This is a prerelease of samba-%{samba_major}, not intended
+for production use. If something breaks, file a bug report.
+%endif
+
+#Antivirus packages:
+%if %build_fprot
+%package vscan-fprot
+Summary: On-access virus scanning for samba using FPROT
+Group: System/Servers
+Requires: %{name}-server = %{version}
+Autoreq: 0
+%description vscan-fprot
+A vfs-module for samba to implement on-access scanning using the
+FPROT antivirus software (which must be installed to use this).
+%endif
+
+%if %build_kaspersky
+%package vscan-kaspersky
+Summary: On-access virus scanning for samba using Kaspersky
+Group: System/Servers
+Requires: %{name}-server = %{version}
+Autoreq: 0
+%description vscan-kaspersky
+A vfs-module for samba to implement on-access scanning using the
+Kaspersky antivirus software (which must be installed to use this).
+%endif
+
+%if %build_mks
+%package vscan-mks
+Summary: On-access virus scanning for samba using MKS
+Group: System/Servers
+Requires: %{name}-server = %{version}
+Autoreq: 0
+%description vscan-mks
+A vfs-module for samba to implement on-access scanning using the
+MKS antivirus software (which must be installed to use this).
+%endif
 
 
-* Mon Apr 23 2001 Gerald (Jerry) Carter <jerry@samba.org>
-  - Added a few bug fixes to release the first Mandrake RPMS
+%if %build_openantivirus
+%package vscan-openantivirus
+Summary: On-access virus scanning for samba using OpenAntivirus
+Group: System/Servers
+Requires: %{name}-server = %{version}
+Autoreq: 0
+%description vscan-openantivirus
+A vfs-module for samba to implement on-access scanning using the
+OpenAntivirus antivirus software (which must be installed to use this).
+%endif
+
+%if %build_sophos
+%package vscan-sophos
+Summary: On-access virus scanning for samba using Sophos
+Group: System/Servers
+Requires: %{name}-server = %{version}
+Autoreq: 0
+%description vscan-sophos
+A vfs-module for samba to implement on-access scanning using the
+Sophos antivirus software (which must be installed to use this).
+%endif
 
 
-* Sat Apr 14 2001 John H Terpstra <jht@samba.org>
-  - Added official samba-team support for Mandrakesoft
-       - We get a lot of requests for this!
+%if %build_symantec
+%package vscan-symantec
+Summary: On-access virus scanning for samba using Symantec
+Group: System/Servers
+Requires: %{name}-server = %{version}
+Autoreq: 0
+%description vscan-symantec
+A vfs-module for samba to implement on-access scanning using the
+Symantec antivirus software (which must be installed to use this).
+%endif
+
+%if %build_trend
+%package vscan-trend
+Summary: On-access virus scanning for samba using Trend
+Group: System/Servers
+Requires: %{name}-server = %{version}
+Autoreq: 0
+%description vscan-trend
+A vfs-module for samba to implement on-access scanning using the
+Trend antivirus software (which must be installed to use this).
+%endif
 
 %prep
 
 %prep
-%setup
+# Build a summary of how this RPM was built:
+%if %build_acl
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --with acl"
+%else
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --without acl"
+%endif
+%if %build_winbind
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --with winbind"
+%else
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --without winbind"
+%endif
+%if %build_wins
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --with wins"
+%else
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --without wins"
+%endif
+%if %build_ldap
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --with ldap"
+%else
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --without ldap"
+%endif 
+%if %build_ads
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --with ads"
+%else
+RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --without ads"
+%endif
 
 
-%build
-cd source
+%if %build_non_default
+echo "Building a non-default rpm with the following command-line arguments:"
+echo "$RPM_EXTRA_OPTIONS"
+echo "This rpm was built with non-default options, thus, to build ">%{SOURCE7}
+echo "an identical rpm, you need to supply the following options">>%{SOURCE7}
+echo "at build time: $RPM_EXTRA_OPTIONS">>%{SOURCE7}
+echo -e "\n%{name}-%{version}-%{release}\n">>%{SOURCE7}
+%else 
+echo "This rpm was built with default options">%{SOURCE7}
+echo -e "\n%{name}-%{version}-%{release}\n">>%{SOURCE7}
+%endif
+
+%if %build_vscan
+%setup -q -a 8 -n %{pkg_name}-%{source_ver}
+%else
+%setup -q -n %{pkg_name}-%{source_ver}
+%endif
+#%patch111 -p1
+%patch1 -p1 -b .smbw
+#%patch3 -p1 -b .net-r_bin
+%patch5 -p1 -b .gawk
+#%patch6 -p1
+%patch12 -p1 -b .buildroot
+%patch17 -p1 -b .sbin
+%patch20 -p1 -b .samba222
+%patch21 -p1 -b .samba222
+%patch22 -p1 -b .samba222
+%patch23 -p1 -b .destdir
+#%patch24 -p1 -b .langen
+%patch25 -p1 -b .multilang
+%patch26 -p1 -b .samba222
+cp %{SOURCE7} .
 
 
-%ifarch ia64
-libtoolize --copy --force     # get it to recognize IA-64
+# Make a copy of examples so that we have a clean one for doc:
+cp -a examples examples.bin
+
+%if %build_vscan
+# put antivirus files in examples.bin/VFS/
+for av in fprot kaspersky mks openantivirus sophos symantec trend; do
+       cp -a %{vscandir}/$av %{vfsdir}
+done
+%endif
+
+# Edit some files when not building system samba:
+%if !%build_system
+perl -pi -e 's/%{pkg_name}/%{name}/g' source/auth/pampass.c
+%endif
+
+%build
+#%serverbuild
+(cd source
 autoconf
 autoconf
-autoheader
-EXTRA="-D_LARGEFILE64_SOURCE"
-%endif
-
-NUMCPU=`grep processor /proc/cpuinfo | wc -l`
-
-CFLAGS="$RPM_OPT_FLAGS $EXTRA" ./configure \
-       --prefix=%{prefix} \
-       --with-fhs \
-       --libdir=/etc/samba \
-       --localstatedir=/var \
-       --with-codepagedir=%{prefix}/share/samba/codepages \
-       --with-configdir=/etc/samba \
-       --with-lockdir=/var/lock/samba \
-       --with-swatdir=%{prefix}/share/swat \
-       --with-quotas \
-       --with-smbmount \
-       --with-pam \
-       --with-pam_smbpass \
-       --with-syslog \
-       --with-utmp \
-       --with-netatalk \
-       --with-sambabook=%{prefix}/share/swat/using_samba
-
-make -j${NUMCPU} proto
-make -j${NUMCPU} all smbfilter nsswitch/libnss_wins.so debug2html
+CPPFLAGS="-I/usr/include/openssl"; export CPPFLAGS
+CFLAGS="$RPM_OPT_FLAGS"
+%configure      --prefix=%{_prefix} \
+                --with-fhs \
+                --libdir=/etc/%{name} \
+                --sysconfdir=/etc/%{name} \
+                --localstatedir=/var \
+                --with-configdir=/etc/%{name} \
+                --with-codepagedir=/var/lib/%{name}/codepages \
+                --with-privatedir=/etc/%{name} \
+                --with-swatdir=%{_datadir}/swat%{samba_major} \
+                --with-smbmount \
+                --with-syslog \
+                --with-automount \
+                --with-pam \
+                --with-vfs \
+                --with-utmp \
+                --with-msdfs \
+                --with-smbwrapper \
+               --with-manpages-langs=en        \
+               --with-logfilebase=/var/log/%{name} \
+               --with-lockdir=/var/cache/%{name} \
+               --with-piddir=/var/run/%{name} \
+%if !%build_system
+               --program-suffix=%{samba_major} \
+%endif         
+%if %build_acl
+               --with-acl-support      \
+%endif
+%if !%build_ldap
+               --with-ldap=no          \
+%endif
+%if !%build_ads
+               --with-ads=no   \
+%endif
+                --with-quotas
+#                --with-pam_smbpass \
+#              --with-manpages-langs=en,ja,pl  \
+
+#make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" all
+make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" \
+       all smbfilter smbwrapper smbcacls pam_smbpass nsswitch nsswitch/libnss_wins.so debug2html
+# Build VFS modules (experimental)
+cd ../%vfsdir
+%configure     --prefix=%{prefix} \
+               --mandir=%{prefix}/share/man
+make
+#make CFLAGS="$RPM_OPT_FLAGS -I../../source -I../../source/include -I../../source/ubiqx \
+#      -I../../source/smbwrapper -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
+)
+
+# Build mkntpasswd in examples/LDAP/ for smbldaptools
+(
+cd examples.bin/LDAP/smbldap-tools/mkntpwd
+make
+)
+
+# Build antivirus vfs objects:
+%if %build_fprot
+echo "Building fprot"
+%endif
+%if %build_kaspersky
+echo "Building Kaspersky"
+(cd %{vfsdir}/kaspersky;make)
+%endif
+%if %build_mks
+echo "Building mks"
+(cd %{vfsdir}/mks;make)
+%endif
+%if %build_openantivirus
+echo "Building OpenAntivirus"
+(cd %{vfsdir}/openantivirus;make)
+%endif
+%if %build_sophos
+echo "building sophos"
+(cd %{vfsdir}/sophos;make)
+%endif
+%if %build_symantec
+echo "Building symantec"
+(cd %{vfsdir}/symantec;make)
+%endif
+%if %build_trend
+echo "Building Trend"
+(cd %{vfsdir}/trend;make)
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT
 
 %install
 rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/etc/{logrotate.d,pam.d,samba,xinetd.d}
-mkdir -p $RPM_BUILD_ROOT/etc/samba/security
+
+# Any entries here mean samba makefile is *really* broken:
+mkdir -p $RPM_BUILD_ROOT/etc/%{name}
+mkdir -p $RPM_BUILD_ROOT/%{_datadir}
+
+(cd source
+make DESTDIR=$RPM_BUILD_ROOT install)
+
+#need to stay
+mkdir -p $RPM_BUILD_ROOT/sbin
+mkdir -p $RPM_BUILD_ROOT/etc/{logrotate.d,pam.d,xinetd.d}
 mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
 mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
+mkdir -p $RPM_BUILD_ROOT/var/cache/%{name}
+mkdir -p $RPM_BUILD_ROOT/var/log/%{name}
+mkdir -p $RPM_BUILD_ROOT/var/run/%{name}
+mkdir -p $RPM_BUILD_ROOT/var/spool/%{name}
+mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/{netlogon,profiles,printers}
+mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC}
+mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/codepages/src
 mkdir -p $RPM_BUILD_ROOT/lib/security
 mkdir -p $RPM_BUILD_ROOT/lib/security
-mkdir -p $RPM_BUILD_ROOT%{prefix}/{bin,sbin}
-mkdir -p $RPM_BUILD_ROOT/home/samba
-mkdir -p $RPM_BUILD_ROOT/sbin
-mkdir -p $RPM_BUILD_ROOT%{prefix}/share/swat/{images,help,include}
-mkdir -p $RPM_BUILD_ROOT%{prefix}/share/samba/codepages/src 
-mkdir -p $RPM_BUILD_ROOT%{prefix}/share/swat/using_samba/{figs,gifs}
-mkdir -p $RPM_BUILD_ROOT%{prefix}/share/man/{man1,man5,man7,man8}
-mkdir -p $RPM_BUILD_ROOT/var/lock/samba
-mkdir -p $RPM_BUILD_ROOT/var/log/samba
-mkdir -p $RPM_BUILD_ROOT/var/spool/samba
-
-# Install standard binary files
-for i in nmblookup smbclient smbpasswd smbstatus testparm testprns \
-   make_smbcodepage make_unicodemap make_printerdef rpcclient smbspool \
-   smbmount smbumount smbmnt
-do
-       install -m755 -s source/bin/$i $RPM_BUILD_ROOT%{prefix}/bin
-done
-for i in smbtar
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
+mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}/vfs
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts
+
+#smbwrapper and pam_winbind not handled by make, pam_smbpass.so doesn't build
+install -m 755 source/bin/smbwrapper.so $RPM_BUILD_ROOT%{_libdir}/smbwrapper%{samba_major}.so
+#install -m 755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/lib/security/pam_smbpass.so
+install -m 755 source/nsswitch/pam_winbind.so $RPM_BUILD_ROOT/lib/security/pam_winbind%{samba_major}.so
+
+# Install VFS modules
+#install -m755 %vfsdir/audit.so $RPM_BUILD_ROOT/%{_libdir}/samba/vfs
+#for i in block recycle
+#do
+# install -m755 %vfsdir/$i/$i.so $RPM_BUILD_ROOT/%{_libdir}/samba/vfs
+#done
+
+# Antivirus support:
+#      mkdir -p $RPM_BUILD_ROOT%{_libdir}/samba/vfs/vscan
+       for av in fprotd kavp mksd oav sophos symantec trend; do
+               if [ -d %{vfsdir}/$av -a -e %{vfsdir}/$av/vscan-$av.so ];then
+                       cp %{vfsdir}/$av/vscan-$av.so \
+                               $RPM_BUILD_ROOT%{_libdir}/samba/vfs/
+               fi
+       done
+       
+#These scripts are not handled by make:
+#for i in addtosmbpass mksmbpasswd.sh smbtar convert_smbpasswd
+for i in addtosmbpass mksmbpasswd.sh convert_smbpasswd
 do
 do
-       install -m755 source/script/$i $RPM_BUILD_ROOT%{prefix}/bin
+  install -m755 source/script/$i $RPM_BUILD_ROOT/%{_bindir}
 done
 
 done
 
-# Install secure binary files
-for i in smbd nmbd swat debug2html smbfilter
-do
-       install -m755 -s source/bin/$i $RPM_BUILD_ROOT%{prefix}/sbin
+#libnss_* not handled by make:
+# Install the nsswitch library extension file
+for i in wins winbind; do
+  install -m755 source/nsswitch/libnss_${i}.so $RPM_BUILD_ROOT/lib/libnss_${i}%{samba_major}.so
 done
 done
+# Make link for wins and winbind resolvers
+( cd $RPM_BUILD_ROOT/lib; ln -s libnss_wins%{samba_major}.so libnss_wins%{samba_major}.so.2; ln -s libnss_winbind%{samba_major}.so libnss_winbind%{samba_major}.so.2)
 
 
-# we need a symlink for mount to recognise the smb and smbfs filesystem types
-ln -sf %{prefix}/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
-ln -sf %{prefix}/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
+# Install other stuff
 
 
-# Install codepage source files
-for i in 437 737 775 850 852 861 866 932 936 949 950 1251; do
-       install -m644 source/codepages/codepage_def.$i $RPM_BUILD_ROOT%{prefix}/share/samba/codepages/src
-done
-for i in 437 737 850 852 861 866 932 936 949 950 ISO8859-1 ISO8859-2 ISO8859-5 ISO8859-7 KOI8-R; do
-       install -m644 source/codepages/CP$i.TXT $RPM_BUILD_ROOT%{prefix}/share/samba/codepages/src
-done
+#        install -m644 examples/VFS/recycle/recycle.conf $RPM_BUILD_ROOT/etc/samba/
+        install -m644 packaging/Mandrake/smb.conf $RPM_BUILD_ROOT/etc/%{name}/smb.conf
+        install -m644 packaging/Mandrake/smbusers $RPM_BUILD_ROOT/etc/%{name}/smbusers
+        install -m755 packaging/Mandrake/smbprint $RPM_BUILD_ROOT/%{_bindir}
+        #install -m755 packaging/RedHat/smbadduser $RPM_BUILD_ROOT/usr/bin
+        install -m755 packaging/Mandrake/findsmb $RPM_BUILD_ROOT/%{_bindir}
+        install -m755 packaging/Mandrake/smb.init $RPM_BUILD_ROOT/etc/rc.d/init.d/smb%{samba_major}
+        install -m755 packaging/Mandrake/smb.init $RPM_BUILD_ROOT/%{_sbindir}/%{name}
+       install -m755 packaging/Mandrake/winbind.init $RPM_BUILD_ROOT/etc/rc.d/init.d/winbind%{samba_major}
+       install -m755 packaging/Mandrake/winbind.init $RPM_BUILD_ROOT/%{_sbindir}/winbind%{samba_major}
+        install -m644 packaging/Mandrake/samba.pamd $RPM_BUILD_ROOT/etc/pam.d/%{name}
+       install -m644 packaging/Mandrake/system-auth-winbind.pamd $RPM_BUILD_ROOT/etc/pam.d/system-auth-winbind%{samba_major}
+#
+        install -m644 $RPM_SOURCE_DIR/samba.log $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
+#      install -m644 packaging/Mandrake/samba-slapd-include.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/samba-slapd.include
 
 
-# Install the nsswitch library extenstion file
-install -m755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/lib
-# Make link for wins resolver
-( cd $RPM_BUILD_ROOT/lib; ln -s libnss_wins.so libnss_wins.so.2; )
+# Install smbldap-tools scripts:
+#for i in examples/LDAP/smbldap-tools/*.pl; do
+#      install -m 750 $i $RPM_BUILD_ROOT/%{_datadir}/%{name}/scripts/
+#done
 
 
-# PAM Authentication file
-install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/lib/security
+#install -m 750 examples/LDAP/smbldap-tools/smbldap_tools.pm $RPM_BUILD_ROOT/%{_datadir}/%{name}/scripts/
 
 
-# Install SWAT helper files
-for i in swat/help/*.html docs/htmldocs/*.html; do
-       install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/help
-done
-for i in swat/images/*.gif; do
-       install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/images
-done
-for i in swat/include/*.html; do
-       install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/include
-done
+# The conf file        
+#install -m 640 examples/LDAP/smbldap-tools/smbldap_conf.pm $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}
 
 
-# This is the O'Reily Samba Book - on-line
-for i in docs/htmldocs/using_samba/*.html; do
-       install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/using_samba
-done
-for i in docs/htmldocs/using_samba/figs/*.gif; do
-       install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/using_samba/figs
+# Link both smbldap*.pm into vendor-perl (any better ideas?)
+#mkdir -p %{buildroot}/%{perl_vendorlib}
+#ln -s %{_sysconfdir}/%{name}/smbldap_conf.pm $RPM_BUILD_ROOT/%{perl_vendorlib}
+#ln -s %{_datadir}/%{name}/scripts/smbldap_tools.pm $RPM_BUILD_ROOT/%{perl_vendorlib}
+
+#mkntpwd
+#install -m750 examples.bin/LDAP/smbldap-tools/mkntpwd/mkntpwd %{buildroot}/%{_sbindir}
+
+# Samba smbpasswd migration script:
+install -m700 examples/LDAP/export_smbpasswd.pl $RPM_BUILD_ROOT/%{_datadir}/%{name}/scripts/
+install -m700 examples/LDAP/import_smbpasswd.pl $RPM_BUILD_ROOT/%{_datadir}/%{name}/scripts/
+
+
+
+# make a conf file for winbind from the default one:
+       cat packaging/Mandrake/smb.conf|sed -e  's/^;  winbind/  winbind/g;s/^;  obey pam/  obey pam/g; s/^;   printer admin = @"D/   printer admin = @"D/g;s/^;   password server = \*/   password server = \*/g;s/^;  template/  template/g; s/^   security = user/   security = domain/g' > packaging/Mandrake/smb-winbind.conf
+        install -m644 packaging/Mandrake/smb-winbind.conf $RPM_BUILD_ROOT/etc/%{name}/smb-winbind.conf
+
+# Link smbmount to /sbin/mount.smb and /sbin/mount.smbfs
+#I don't think it's possible for make to do this ...
+        ln -s $RPM_BUILD_ROOT/%{_bindir}/smbmount%{samba_major} $RPM_BUILD_ROOT/sbin/mount.smb%{samba_major}
+        ln -s $RPM_BUILD_ROOT/%{_bindir}/smbmount%{samba_major} $RPM_BUILD_ROOT/sbin/mount.smbfs%{samba_major}
+        echo 127.0.0.1 localhost > $RPM_BUILD_ROOT/etc/%{name}/lmhosts
+
+# Link smbspool to CUPS (does not require installed CUPS)
+
+        mkdir -p $RPM_BUILD_ROOT/%{_libdir}/cups/backend
+        ln -s %{_bindir}/smbspool $RPM_BUILD_ROOT/%{_libdir}/cups/backend/smb%{samba_major}
+
+# xinetd support
+
+        mkdir -p $RPM_BUILD_ROOT/etc/xinetd.d
+        install -m644 %{SOURCE3} $RPM_BUILD_ROOT/etc/xinetd.d/swat%{samba_major}
+
+# menu support
+
+mkdir -p $RPM_BUILD_ROOT%{_menudir}
+cat > $RPM_BUILD_ROOT%{_menudir}/%{name} << EOF
+?package(%{name}):command="gnome-moz-remote http://localhost:901/" needs="gnome" \
+icon="swat%{samba_major}.xpm" section="Configuration/Networking" title="Samba Configuration" \
+longtitle="The Swat Samba Administration Tool"
+?package(%{name}):command="sh -c '\$BROWSER http://localhost:901/'" needs="x11" \
+icon="swat%{samba_major}.xpm" section="Configuration/Networking" title="Samba Configuration" \
+longtitle="The Swat Samba Administration Tool"
+EOF
+
+mkdir -p $RPM_BUILD_ROOT%{_liconsdir} $RPM_BUILD_ROOT%{_iconsdir} $RPM_BUILD_ROOT%{_miconsdir}
+
+bzcat %{SOURCE4} > $RPM_BUILD_ROOT%{_liconsdir}/swat%{samba_major}.xpm
+bzcat %{SOURCE5} > $RPM_BUILD_ROOT%{_iconsdir}/swat%{samba_major}.xpm
+bzcat %{SOURCE6} > $RPM_BUILD_ROOT%{_miconsdir}/swat%{samba_major}.xpm
+
+bzcat %{SOURCE10}> $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts/print-pdf
+
+# Fix configs when not building system samba:
+%if !%build_system
+# Work around non-existent but claimed --program-suffix support :-(
+for dir in %{_sbindir} %{_bindir};do
+    FILES=`find %{buildroot}$dir -type f |grep -v "\."|grep -v %{samba_major}$`
+    for OLD in $FILES; do
+        NEW=`echo ${OLD}%{samba_major}`
+        mv $OLD $NEW
+    done
 done
 done
-for i in docs/htmldocs/using_samba/gifs/*.gif; do
-       install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/using_samba/gifs
+# And the man pages too:
+FILES=`find %{buildroot}%{_mandir} -type f `
+for OLD in $FILES; do
+    BASE=`perl -e '$name="'${OLD}'"; print "",($name =~ /(.*?)\.[0-9]/), "\n";'`
+    EXT=`echo $OLD|sed -e 's,'${BASE}',,g'`
+    NEW=`echo ${BASE}%{samba_major}${EXT}`
+    mv $OLD $NEW
+done           
+# Replace paths in config files and init scripts:
+for i in smb winbind;do
+       perl -pi -e 's,/subsys/'$i',/subsys/'$i'%{samba_major},g' $RPM_BUILD_ROOT/etc/rc.d/init.d/${i}%{samba_major}
 done
 done
-
-# Install the miscellany
-install -m644 swat/README $RPM_BUILD_ROOT%{prefix}/share/swat
-# Install level 1 man pages
-for i in *.1; do
-       install -m644 docs/manpages/$i $RPM_BUILD_ROOT%{prefix}/share/man/man1
+for i in /etc/%{name}/smb.conf /etc/rc.d/init.d/smb%{samba_major} %{_sbindir}/%{name} /etc/rc.d/init.d/winbind%{samba_major} %{_sbindir}/winbind%{samba_major} /etc/logrotate.d/%{name} /etc/xinetd.d/swat%{samba_major}; do
+       perl -pi -e 's,/%{pkg_name},/%{name},g; s,smbd,%{_sbindir}/smbd%{samba_major},g; s,nmbd,%{_sbindir}/nmbd%{samba_major},g; s,winbindd,%{_sbindir}/winbindd%{samba_major},g; s,/usr/sbin/swat,%{_sbindir}/swat%{samba_major},g' $RPM_BUILD_ROOT/$i;
 done
 done
-install -m644 docs/manpages/smb.conf.5 $RPM_BUILD_ROOT%{prefix}/share/man/man5
-install -m644 docs/manpages/lmhosts.5 $RPM_BUILD_ROOT%{prefix}/share/man/man5
-install -m644 docs/manpages/smbpasswd.5 $RPM_BUILD_ROOT%{prefix}/share/man/man5
-
-install -m644 docs/manpages/samba.7 $RPM_BUILD_ROOT%{prefix}/share/man/man7
-
-install -m644 docs/manpages/smbd.8 $RPM_BUILD_ROOT%{prefix}/share/man/man8
-install -m644 docs/manpages/nmbd.8 $RPM_BUILD_ROOT%{prefix}/share/man/man8
-install -m644 docs/manpages/smbpasswd.8 $RPM_BUILD_ROOT%{prefix}/share/man/man8
-install -m644 docs/manpages/swat.8 $RPM_BUILD_ROOT%{prefix}/share/man/man8
-install -m644 docs/manpages/smbmount.8 $RPM_BUILD_ROOT%{prefix}/share/man/man8
-install -m644 docs/manpages/smbmnt.8 $RPM_BUILD_ROOT%{prefix}/share/man/man8
-install -m644 docs/manpages/smbumount.8 $RPM_BUILD_ROOT%{prefix}/share/man/man8
-install -m644 docs/manpages/smbspool.8 $RPM_BUILD_ROOT%{prefix}/share/man/man8
-
-install -m644 swat/README $RPM_BUILD_ROOT%{prefix}/share/swat
-
-install -m644 packaging/Mandrake/smb.con* $RPM_BUILD_ROOT/etc/samba/
-install -m644 packaging/Mandrake/smbusers $RPM_BUILD_ROOT/etc/samba/smbusers
-install -m755 packaging/Mandrake/smbprint $RPM_BUILD_ROOT%{prefix}/bin
-install -m755 packaging/Mandrake/findsmb $RPM_BUILD_ROOT%{prefix}/bin
-install -m755 packaging/Mandrake/smb.init $RPM_BUILD_ROOT/etc/rc.d/init.d/smb
-install -m755 packaging/Mandrake/smb.init $RPM_BUILD_ROOT%{prefix}/sbin/samba
-install -m644 packaging/Mandrake/samba.pamd $RPM_BUILD_ROOT/etc/pam.d/samba
-install -m644 packaging/Mandrake/samba.log $RPM_BUILD_ROOT/etc/logrotate.d/samba
-install -m644 packaging/Mandrake/samba.xinetd $RPM_BUILD_ROOT/etc/xinetd.d/swat
-echo 127.0.0.1 localhost > $RPM_BUILD_ROOT/etc/samba/lmhosts
-
-##
-## remove these directories so they don't get installed twice
-##
-/bin/rm -rf docs/htmldocs
-/bin/rm -rf docs/manpages
-
+# Fix pam files
+perl -pi -e 's/winbind/winbind%{samba_major}/g' $RPM_BUILD_ROOT/etc/pam.d/system-auth-winbind%{samba_major}
+# Fix xinetd file for swat:
+perl -pi -e 's,/usr/sbin,%{_sbindir},g' $RPM_BUILD_ROOT/etc/xinetd.d/swat%{samba_major}
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%post
-/sbin/chkconfig --add smb
-/sbin/chkconfig smb off
+%post server
+
+/sbin/chkconfig --level 35 smb%{samba_major} on
 
 
-# Build codepage load files
-cd %{prefix}/share/samba/codepages
-for i in 437 737 775 850 852 861 866 932 936 949 950 1251
+# Add a unix group for samba machine accounts
+groupadd -frg 421 machines
+
+# Migrate tdb's from /var/lock/samba (taken from official samba spec file):
+for i in /var/lock/samba/*.tdb
 do
 do
-%{prefix}/bin/make_smbcodepage c $i %{prefix}/share/samba/codepages/src/codepage_def.$i %{prefix}/share/samba/codepages/codepage.$i
+if [ -f $i ]; then
+       newname=`echo $i | sed -e's|var\/lock\/samba|var\/cache\/samba|'`
+       echo "Moving $i to $newname"
+       mv $i $newname
+fi
 done
 done
-for i in 437 737 850 852 861 866 932 936 949 950 ISO8859-1 ISO8859-2 ISO8859-5 ISO8859-7 KOI8-R
-do
-%{prefix}/bin/make_unicodemap $i %{prefix}/share/samba/codepages/src/CP$i.TXT %{prefix}/share/samba/codepages/unicode_map.$i
+
+# Remove the transient tdb files (modified from version in off. samba spec:
+for TDB in brlock unexpected locking messages; do
+        if [ -e /var/cache/%{name}/$TDB.tdb ]; then
+                rm -f /var/cache/%{name}/$TDB.tdb;
+        fi;
 done
 
 done
 
-# Add swat entry to /etc/services if not already there
-if !( grep ^[:space:]*swat /etc/services > /dev/null ) then
-       echo 'swat              901/tcp                         # Add swat service used via inetd' >> /etc/services
+if [ -d /var/lock/samba ]; then
+        rm -rf /var/lock/samba
 fi
 
 fi
 
-%preun
-if [ $1 = 0 ] ; then
-    /sbin/chkconfig --del smb
+%post common
+# Basic migration script for pre-2.2.1 users,
+# since smb config moved from /etc to /etc/samba
+
+# Let's create a proper /etc/samba/smbpasswd file
+[ -f /etc/%{name}/smbpasswd ] || {
+       echo "Creating password file for samba..."
+       touch /etc/%{name}/smbpasswd
+}
+
+# And this too, in case we don't have smbd to create it for us
+[ -f /var/cache/%{name}/unexpected.tdb ] || {
+       touch /var/cache/%{name}/unexpected.tdb
+}
+
+# Let's define the proper paths for config files
+perl -pi -e 's/(\/etc\/)(smb)/\1%{name}\/\2/' /etc/%{name}/smb.conf
+
+# Fix the logrotate.d file from smb and nmb to smbd and nmbd
+if [ -f /etc/logrotate.d/samba ]; then
+        perl -pi -e 's/smb /smbd /' /etc/logrotate.d/samba
+        perl -pi -e 's/nmb /nmbd /' /etc/logrotate.d/samba
+fi
+
+# And not loose our machine account SID
+[ -f /etc/MACHINE.SID ] && mv -f /etc/MACHINE.SID /etc/%{name}/ ||:
+
+%if %build_winbind
+%post winbind
+if [ $1 = 1 ]; then
+    /sbin/chkconfig winbind%{samba_major} on
+    cp -af /etc/nsswitch.conf /etc/nsswitch.conf.rpmsave
+    cp -af /etc/nsswitch.conf /etc/nsswitch.conf.rpmtemp
+    for i in passwd group;do
+        grep ^$i /etc/nsswitch.conf |grep -v 'winbind%{samba_major}' >/dev/null
+        if [ $? = 0 ];then
+            echo "Adding a winbind%{samba_major} entry to the $i section of /etc/nsswitch.conf"
+            awk '/^'$i'/ {print $0 " winbind%{samba_major}"};!/^'$i'/ {print}' /etc/nsswitch.conf.rpmtemp >/etc/nsswitch.conf;
+           cp -af /etc/nsswitch.conf /etc/nsswitch.conf.rpmtemp
+        else
+            echo "$i entry found in /etc/nsswitch.conf"
+        fi
+    done
+    if [ -f /etc/nsswitch.conf.rpmtemp ];then rm -f /etc/nsswitch.conf.rpmtemp;fi
+fi
+
+%preun winbind
+if [ $1 = 0 ]; then
+       echo "Removing winbind%{samba_major} entries from /etc/nsswitch.conf"
+       perl -pi -e 's/ winbind%{samba_major}//' /etc/nsswitch.conf
+
+       /sbin/chkconfig winbind%{samba_major} reset
+fi
+%endif %build_winbind
 
 
-    # We want to remove the browse.dat file
-    if [ -e /var/lock/samba/browse.dat ]; then
-           rm -f /var/lock/samba/browse.dat
+%if %build_wins
+%post -n nss_wins%{samba_major}
+if [ $1 = 1 ]; then
+    cp -af /etc/nsswitch.conf /etc/nsswitch.conf.rpmsave
+    grep '^hosts' /etc/nsswitch.conf |grep -v 'wins%{samba_major}' >/dev/null
+    if [ $? = 0 ];then
+        echo "Adding a wins entry to the hosts section of /etc/nsswitch.conf"
+        awk '/^hosts/ {print $0 " wins%{samba_major}"};!/^hosts/ {print}' /etc/nsswitch.conf.rpmsave >/etc/nsswitch.conf;
+    else
+        echo "wins entry found in /etc/nsswitch.conf"
     fi
     fi
+#    else
+#        echo "Upgrade, leaving nsswitch.conf intact"
+fi
+
+%preun -n nss_wins%{samba_major}
+if [ $1 = 0 ]; then
+       echo "Removing wins entry from /etc/nsswitch.conf"
+       perl -pi -e 's/ wins%{samba_major}//' /etc/nsswitch.conf
+#else
+#      echo "Leaving /etc/nsswitch.conf intact"
 fi
 fi
+%endif %build_wins
+
+%preun
+
+/sbin/chkconfig --level 35 smb%{samba_major} reset
 
 
-%postun
-# Only delete remnants of samba if this is the final deletion.
 if [ $1 = 0 ] ; then
 if [ $1 = 0 ] ; then
-    if [ -x /etc/pam.d/samba ]; then
-      rm -f /etc/pam.d/samba
-    fi
-    if [ -e /var/log/samba ]; then
-      rm -rf /var/log/samba
+%_preun_service smb%{samba_major}
+#    /sbin/chkconfig --level 35 smb reset
+# Let's not loose /var/cache/samba
+
+#    for i in browse.dat wins.dat brlock.tdb unexpected.tdb connections.tdb \
+#locking.tdb messages.tdb;do
+#        if [ -e /var/cache/samba/$i ]; then
+#                mv -f /var/cache/samba/$i /var/cache/samba/$i.BAK
+#        fi;
+#    done
+    if [ -d /var/log/%{name} ]; then
+      rm -rf /var/log/%{name}/*
     fi
     fi
-    if [ -e /var/lock/samba ]; then
-      rm -rf /var/lock/samba
+    if [ -d /var/cache/%{name} ]; then
+      mv -f /var/cache/%{name} /var/cache/%{name}.BAK
     fi
     fi
+fi
+
+%post swat
+if [ -f /var/lock/subsys/xinetd ]; then
+        service xinetd reload >/dev/null 2>&1 || :
+fi
+%update_menus
 
 
-    # Remove swat entries from /etc/inetd.conf and /etc/services
-    cd /etc
-    tmpfile=/etc/tmp.$$
-    sed -e '/^[:space:]*swat.*$/d' /etc/services > $tmpfile
-    mv $tmpfile services
+%postun swat
+
+# Remove swat entry from xinetd
+if [ $1 = 0 -a -f /etc/xinetd.conf ] ; then
+rm -f /etc/xinetd.d/swat%{samba_major}
+       service xinetd reload &>/dev/null || :
 fi
 
 fi
 
-%triggerpostun -- samba < samba-2.0.0
-if [ $0 != 0 ]; then
-    /sbin/chkconfig --add smb
+if [ "$1" = "0" -a -x /usr/bin/update-menus ]; then /usr/bin/update-menus || true ; fi
+
+%clean_menus
+
+%triggerpostun -- samba < 1.9.18p7
+
+if [ $1 != 0 ]; then
+    /sbin/chkconfig --level 35 smb on
 fi
 
 fi
 
-%files
+%triggerpostun -- samba < 2.0.5a-3, samba >= 2.0.0
+
+if [ $1 != 0 ]; then
+        [ ! -d /var/lock/samba ] && mkdir -m 0755 /var/lock/samba ||:
+        [ ! -d /var/spool/samba ] && mkdir -m 1777 /var/spool/samba ||:
+        [ -f /etc/inetd.conf ] && chmod 644 /etc/services /etc/inetd.conf ||:
+fi
+
+%files server
+%defattr(-,root,root)
+#%attr(-,root,root) /sbin/*
+%{_sbindir}/%{name}
+%{_sbindir}/smbd%{samba_major}
+%{_sbindir}/nmbd%{samba_major}
+#%{_sbindir}/smbcontrol
+#%{_sbindir}/mkntpwd
+#%{prefix}/bin/addtosmbpass
+%{_bindir}/mksmbpasswd.sh
+%{_bindir}/smbstatus%{samba_major}
+%{_bindir}/convert_smbpasswd%{samba_major}
+%{_bindir}/pdbedit%{samba_major}
+%{_bindir}/smbgroupedit%{samba_major}
+#%attr(755,root,root) /lib/security/pam_smbpass*
+#/usr/share/swat
+%attr(-,root,root) %config(noreplace) /etc/%{name}/smbusers
+%attr(-,root,root) %config /etc/rc.d/init.d/smb%{samba_major}
+%attr(-,root,root) %config(noreplace) /etc/logrotate.d/%{name}
+%attr(-,root,root) %config(noreplace) /etc/pam.d/%{name}
+#%attr(-,root,root) %config(noreplace) /etc/%{name}/samba-slapd.include
+%{_mandir}/man1/smbstatus*.1*
+%{_mandir}/man5/smbpasswd*.5*
+%{_mandir}/man7/samba*.7*
+%{_mandir}/man8/smbd*.8*
+%{_mandir}/man8/nmbd*.8*
+%{_mandir}/man1/smbcontrol*.1*
+%{_mandir}/man5/lmhosts*.5*
+%{_mandir}/man5/smb.conf*.5*
+%attr(775,root,root) %dir /var/lib/%{name}/netlogon
+%attr(775,root,root) %dir /var/lib/%{name}/profiles
+%attr(775,root,root) %dir /var/lib/%{name}/printers/*
+%dir /var/cache/%{name}
+%dir /var/log/%{name}
+%attr(1777,root,root) %dir /var/spool/%{name}
+%dir %{_datadir}/%{name}/scripts
+#%attr(0755,root,root) %{_datadir}/%{name}/scripts/print-pdf
+#%attr(0750,root,root) %{_datadir}/%{name}/scripts/smbldap*.pl
+#%attr(0640,root,root) %config(noreplace) %{_sysconfdir}/%{name}/smbldap_conf.pm
+#%attr(0644,root,root) %{_datadir}/%{name}/scripts/smbldap_tools.pm
+#%{perl_vendorlib}/*.pm
+%attr(0700,root,root) %{_datadir}/%{name}/scripts/*port_smbpasswd.pl
+
+
+%files doc
+%defattr(-,root,root)
 %doc README COPYING Manifest Read-Manifest-Now
 %doc WHATSNEW.txt Roadmap
 %doc README COPYING Manifest Read-Manifest-Now
 %doc WHATSNEW.txt Roadmap
+%doc README.%{name}-mandrake-rpm
 %doc docs
 %doc docs
-%doc swat/README
 %doc examples
 %doc examples
-%attr(-,root,root) %{prefix}/sbin/*
-%attr(-,root,root) /sbin/*
-%attr(-,root,root) %{prefix}/bin/*
-%attr(755,root,root) /lib/*
-%attr(-,root,root) %{prefix}/share/swat/help/*
-%attr(-,root,root) %{prefix}/share/swat/images/*
-%attr(-,root,root) %{prefix}/share/swat/include/*
-%attr(-,root,root) %{prefix}/share/swat/using_samba/*
-%attr(-,root,root) %config(noreplace) /etc/samba/lmhosts
-%attr(-,root,root) %config(noreplace) /etc/samba/smb.conf
-%attr(-,root,root) %config(noreplace) /etc/samba/smbusers
-%attr(-,root,root) /etc/rc.d/init.d/smb
-%attr(-,root,root) /etc/logrotate.d/samba
-%attr(-,root,root) %config(noreplace) /etc/pam.d/samba
-%attr(-,root,root) %{prefix}/share/man/man1/*
-%attr(-,root,root) %{prefix}/share/man/man5/*
-%attr(-,root,root) %{prefix}/share/man/man7/*
-%attr(-,root,root) %{prefix}/share/man/man8/*
-%attr(-,root,root) %dir /etc/samba/
-%attr(-,root,root) %dir /usr/share/samba/codepages/*
-%attr(-,root,root) %dir /usr/share/samba/codepages/src/*
-%attr(-,root,root) %dir /var/lock/samba
-%attr(-,root,root) %dir /var/log/samba
-%attr(1777,root,root) %dir /var/spool/samba
+%doc swat/README
+%attr(-,root,root) %{_datadir}/swat%{samba_major}/using_samba/*
+
+%files swat
+%defattr(-,root,root)
+%config(noreplace) /etc/xinetd.d/swat%{samba_major}
+#%attr(-,root,root) /sbin/*
+%{_sbindir}/swat%{samba_major}
+%{_menudir}/%{name}
+%{_miconsdir}/*.xpm
+%{_liconsdir}/*.xpm
+%{_iconsdir}/*.xpm
+%attr(-,root,root) %{_datadir}/swat%{samba_major}/help/*
+%attr(-,root,root) %{_datadir}/swat%{samba_major}/images/*
+%attr(-,root,root) %{_datadir}/swat%{samba_major}/include/*
+%{_mandir}/man8/swat*.8*
+
+%files client
+%defattr(-,root,root)
+%ifnarch alpha
+/sbin/mount.smb%{samba_major}
+/sbin/mount.smbfs%{samba_major}
+%attr(755,root,root) %{_bindir}/smbmount%{samba_major}
+%attr(4755,root,root) %{_bindir}/smbumount%{samba_major}
+#%attr(4755,root,root) %{_sbindir}/smbmnt
+%{_mandir}/man8/smbmnt*.8*
+%{_mandir}/man8/smbmount*.8*
+%{_mandir}/man8/smbumount*.8*
+%endif
+%{_bindir}/nmblookup%{samba_major}
+%{_bindir}/findsmb%{samba_major}
+%{_bindir}/smbclient%{samba_major}
+%{_bindir}/smbprint%{samba_major}
+%{_bindir}/smbtar%{samba_major}
+%{_bindir}/smbspool%{samba_major}
+# Link of smbspool to CUPS
+/%{_libdir}/cups/backend/smb%{samba_major}
+/%{_mandir}/man1/nmblookup*.1*
+/%{_mandir}/man1/findsmb*.1*
+/%{_mandir}/man1/smbclient*.1*
+/%{_mandir}/man1/smbtar*.1*
+
+%files common
+%defattr(-,root,root)
+%dir /var/cache/%{name}
+%dir /var/log/%{name}
+%dir /var/run/%{name}
+#%{_bindir}/make_smbcodepage
+#%{_bindir}/make_unicodemap
+%{_bindir}/testparm%{samba_major}
+%{_bindir}/testprns%{samba_major}
+#%{_bindir}/make_printerdef
+%{_bindir}/rpcclient%{samba_major}
+%{_bindir}/smbsh%{samba_major}
+%{_bindir}/smbpasswd%{samba_major}
+%{_bindir}/net%{samba_major}
+%{_bindir}/smbtree%{samba_major}
+%{_libdir}/smbwrapper%{samba_major}.so
+%attr(-,root,root) %config(noreplace) /etc/%{name}/smb.conf
+%attr(-,root,root) %config(noreplace) /etc/%{name}/smb-winbind.conf
+%attr(-,root,root) %config(noreplace) /etc/%{name}/lmhosts
+%attr(-,root,root) /var/lib/%{name}/codepages
+%{_mandir}/man1/make_smbcodepage*.1*
+%{_mandir}/man1/make_unicodemap*.1*
+%{_mandir}/man1/testparm*.1*
+%{_mandir}/man1/smbsh*.1*
+%{_mandir}/man1/testprns*.1*
+%{_mandir}/man5/smb.conf*.5*
+%{_mandir}/man5/lmhosts*.5*
+%{_mandir}/man8/smbpasswd*.8*
+/%{_mandir}/man1/smbcacls*.1*
+
+%if %build_winbind
+%files winbind
+%defattr(-,root,root)
+%{_sbindir}/winbindd%{samba_major}
+%{_bindir}/wbinfo%{samba_major}
+%attr(755,root,root) /lib/security/pam_winbind*
+%attr(755,root,root) /lib/libnss_winbind%{samba_major}*
+%attr(-,root,root) %config /etc/rc.d/init.d/winbind%{samba_major}
+%attr(-,root,root) %config(noreplace) /etc/pam.d/system-auth-winbind*
+%{_mandir}/man8/winbindd*.8*
+%{_mandir}/man1/wbinfo*.1*
+%endif
+
+%if %build_wins
+%files -n nss_wins%{samba_major}
+%defattr(-,root,root)
+%attr(755,root,root) /lib/libnss_wins%{samba_major}.so*
+%endif
+
+#Files for antivirus support:
+%if %build_fprot
+%files vscan-fprot
+%defattr(-,root,root)
+%{_libdir}/%{name}/vfs/vscan-fprotd.so
+%doc examples.bin/VFS/fprot/INSTALL
+%endif
+
+%if %build_kaspersky
+%files vscan-kaspersky
+%defattr(-,root,root)
+%{_libdir}/%{name}/vfs/vscan-kavp.so
+%doc examples.bin/VFS/kaspersky/INSTALL
+%endif
+
+%if %build_mks
+%files vscan-mks
+%defattr(-,root,root)
+%{_libdir}/%{name}/vfs/vscan-mksd.so
+%doc examples.bin/VFS/mks/INSTALL
+%endif
+
+%if %build_openantivirus
+%files vscan-openantivirus
+%defattr(-,root,root)
+%{_libdir}/%{name}/vfs/vscan-oav.so
+%doc examples.bin/VFS/openantivirus/INSTALL
+%endif
+
+%if %build_sophos
+%files vscan-sophos
+%defattr(-,root,root)
+%{_libdir}/%{name}/vfs/vscan-sophos.so
+%doc examples.bin/VFS/sophos/INSTALL
+%endif
+
+%if %build_symantec
+%files vscan-symantec
+%defattr(-,root,root)
+%{_libdir}/%{name}/vfs/vscan-symantec.so
+%doc examples.bin/VFS/symantec/INSTALL
+%endif
+
+%if %build_trend
+%files vscan-trend
+%defattr(-,root,root)
+%{_libdir}/%{name}/vfs/vscan-trend.so
+%doc examples.bin/VFS/trend/INSTALL
+%endif
+
+%changelog
+* Mon Oct 28 2002 Buchan Milne <bgmilne@linux-mandrake.com> 3.0-0.alpha20.3mdk
+- Fix mount.smbfs3 pointing to smbmount not in package
+- Remove unnecessary lines from install (now done by make)
+- Build with ldap and ads on all releases by default
+- Put av-stuff back
+
+* Mon Oct 21 2002 Buchan Milne <bgmilne@linux-mandrake.com> 3.0-0.alpha20.2mdk
+- When not building as system samba, avoid conflicting with system samba
+- Macro-ize as much as possible for above (aka finish cleanups)
+- Fix paths in init scripts and logrotate and xinetd
+- Fix provides and obsoletes so as to provide samba, but not obsolete
+  current stable until we have a stable release (when it's the system samba).
+- Add warnings to descriptions when not system samba.
+- This is now parallel installable with the normal samba release, for easy
+  testing. It shouldn't touch existing installations. Of course, only
+  one samba at a time on the same interface!
+
+* Sat Sep 28 2002 Buchan Milne <bgmilne@linux-mandrake.com> 3.0-0.alpha20.1mdk
+- Merge with 2.2.6pre2.2mdk
+- Detect alpha- and beta-, along with pre-releases
+
+* Tue Feb 05 2002 Buchan Milne <bgmilne@cae.co.za> 3.0-alpha14-0.1mdk
+- Sync with 2.2.3-2mdk (new --without options, detect when 
+  building for a different distribution.
+
+* Mon Feb 04 2002 Buchan Milne <bgmilne@cae.co.za> 3.0-alpha14-0.0mdk
+- Sync with 2.2.2-10mdk, which added build-time options --with ldap,
+  winbind, acl, wins, mdk72, mdk80, mdk81, mdk82, cooker. Added
+  warning in description if built with these options.
+
+* Wed Jan 23 2002 Buchan Milne <bgmilne@cae.co.za> 3.0-alpha13-0.2mdk
+- Added %%if's for build_ads, which hopefully will add Active Directory
+  Support (by request).
+
+* Thu Jan 17 2002 Buchan Milne <bgmilne@cae.co.za> 3.0-alpha13-0.1mdk
+- More syncing with 2.2 rpm (post and postun scripts)
+- Testing without ldap
+
+* Thu Jan 17 2002 Buchan Milne <bgmilne@cae.co.za> 3.0-alpha13-0.0mdk
+- 3.0-alpha13
+- Fixed installman.sh patch.
+
+* Wed Jan 09 2002 Buchan Milne <bgmilne@cae.co.za> 3.0-alpha12-0.1mdk
+- Fixed %post and %preun for nss_wins, added %post and %preun for
+  samba-winbind (chkconfig and winbind entries in nsswitch.conf)
+
+* Sun Dec 23 2001 Buchan Milne <bgmilne@cae.co.za> 3.0-alpha12-0.0mdk
+- 3.0-alpha12
+- Sync up with changes made in 2.2.2 to support Mandrake 8.0, 7.2
+- Added new subpackage for swat
+- More %if's for ldap.
+
+* Thu Dec 20 2001 Buchan Milne <bgmilne@cae.co.za> 3.0-alpha11-0.0mdk
+- 3.0-alpha11
+
+* Wed Dec 19 2001 Buchan Milne <bgmilne@cae.co.za> 3.0alpha10-0.0mdk
+- 3.0-alpha10
+
+* Tue Dec 18 2001 Buchan Milne <bgmilne@cae.co.za> 3.0alpha9-0.0mdk
+- 3.0-alpha9
+
+* Mon Dec 17 2001 Buchan Milne <bgmilne@cae.co.za> 3.0alpha8-0.1mdk
+- Added net command to %files common, pdbedit and smbgroupedit to
+  %files, s/%{prefix}\/bin/%{_bindir}/ (the big cleanup).
+  Added patch to smb.init from 2.2.2 (got missed with 3.0-alpha1 patches)
+
+* Sun Dec 16 2001 Buchan Milne <bgmilne@cae.co.za> 3.0alpha8-0.0mdk
+- Patch for installman.sh to handle lang=en correctly (p24)
+- added --with-manpages-langs=en,ja,pl (translated manpages), but there
+  aren't any manpages for these languages yet ... so we still
+  need %dir and %doc entries for them ...
+- patch (p25) to configure.in to support more than 2 languages.
+- addtosmbpass seems to have returned for now, but make_* have disappeared!
+
+* Fri Dec 14 2001 Buchan Milne <bgmilne@cae.co.za> 3.0alpha6-0.0mdk
+- DESTDIR patch for Makefile.in (p23), remove a lot of %install scripts
+  this forces move of smbcontrol and smbmnt to %{prefix}/bin
+  removed --with-pam_smbpass as it doesn't compile.
+
+* Thu Dec 06 2001 Buchan Milne <bgmilne@cae.co.za> 3.0-0.0alpha1mdk
+- Samba 3.0alpha1 released (we missed Samba 3.0alpha0!)
+- Redid smbmount-sbin patch and smb.conf patch (20), removed xfs quota patch 
+  (applied upstream), removed ook-patch (codepage directory totally different).
+- Added winbind.init (21) and system-auth-winbind.pamd (22). Patches 20-23 
+  should be applied upstream before 3.0 ships ...
+
+* Wed Dec 05 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.2-6mdk
+- fixed typo in system-auth-winbind.pamd (--Thanks J. Gluck).
+- fixed %post xxx problem (smb not started in chkconfig --Thanks Viet & B. Kenworthy).
+
+* Fri Nov 23 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.2-5mdk
+- Had to remove the network recycle bin patch: it seems to mess up 
+  file deletion from windows (files appear to be "already in use")
+
+* Tue Nov 13 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.2-4mdk
+- added network recycle bin patch:
+  <http://www.amherst.edu/~bbstone/howto/samba.html>
+- added "recycle bin = .recycled" parameter in smb.conf [homes].
+- fixed winbind/nss_wins perms (oh no I don't own that stuff ;o)
+
+* Mon Nov 12 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.2-3mdk
+- added %build 8.0 and 7.2, for tweakers to play around.
+- changed configure options:
+  . removed --with-mmap, --with-netatalk (obsolete).
+  . added --with-msdfs, --with-vfs (seems stable, but still need testing).
+
+* Mon Nov 12 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.2-2mdk
+- rebuilt with winbind and nss_wins enabled.
+
+* Wed Oct 31 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.2-1mdk
+- Rebuilt on cooker.
+
+* Wed Oct 31 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.2-0.992mdk
+- Patch for smb.conf to fix incorrect lpq command, typo in winbind,
+  and add sample linpopup command. Added print driver directories.
+- New XFS quota patch (untested!, samba runs, but do quotas work? We
+  can't check yet since the kernel doesn't seem to support XFS quotas!)
+
+* Fri Oct 19 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.2-0.99mdk
+- New samba.spec, almost ready for winbind operations. OLA for Buchan Milne
+  Who did a tremendous integration work on 2.2.2.
+  Rebuild on cooker, please test XFS (ACLs and quotas) again...
+  
+* Mon Oct 15 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.2-0.9mdk
+- Samba-2.2.2. released! Use %defines to determine which subpackages
+  are built and which Mandrake release we are buiding on/for (hint: define 
+  build_mdk81 1 for Mandrake 8.1 updates)
+
+* Sun Oct 14 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.2-0.20011014mdk
+- %post and %postun for nss_wins
+
+* Wed Oct 10 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.2-0.20011010mdk
+- New CVS snapshot, /etc/pam.d/system-auth-winbind added
+  with configuration to allow easy winbind setup.
+  
+* Sun Oct 7 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.2-0.20011007mdk
+- Added new package nss_wins and moved smbpasswd to common (required by
+  winbind).
+
+* Sat Oct 6 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.2-0.20011006mdk
+- Added new package winbind.
+
+* Mon Oct 1 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.2-0.20011001mdk
+- Removed patch to smb init.d file (applied in cvs)
+
+* Sun Sep 30 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.2-0.20010930mdk
+- Added winbind init script, which still needs to check for running nmbd.
+
+* Thu Sep 27 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.2-0.20010927mdk
+- Built from samba-2.2.2-pre cvs, added winbindd, wbinfo, nss_winbind and 
+  pam_winbind, moved pam_smbpass from samba-common to samba. We still
+  need a start-up script for winbind, or need to modify existing one.
+  
+* Mon Sep 10 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1a-15mdk
+- Enabled acl support (XFS acls now supported by kernel-2.4.8-21mdk thx Chmou)
+  Added smbd patch to support XFS quota (Nathan Scott)
+  
+* Mon Sep 10 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1a-14mdk
+- Oops! smbpasswd created in wrong directory...
+
+* Tue Sep 06 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1a-13mdk
+- Removed a wrong comment in smb.conf.
+  Added creation of smbpasswd during install.
+
+* Mon Aug 27 2001 Pixel <pixel@mandrakesoft.com> 2.2.1a-12mdk
+- really less verbose %%post
+
+* Sat Aug 25 2001 Geoffrey Lee <snailtalk@mandrakesoft.com> 2.2.1a-11mdk
+- Fix shared libs in /usr/bin silliness.
+
+* Thu Aug 23 2001 Pixel <pixel@mandrakesoft.com> 2.2.1a-10mdk
+- less verbose %%post
+
+* Wed Aug 22 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.1a-9mdk
+- Added smbcacls (missing in %files), modification to smb.conf: ([printers]
+  is still needed, even with point-and-print!, user add script should
+  use name and not gid, since we may not get the gid . New script for
+  putting manpages in place (still need to be added in %files!). Moved
+  smbcontrol to sbin and added it and its man page to %files.
+
+* Wed Aug 22 2001 Pixel <pixel@mandrakesoft.com> 2.2.1a-8mdk
+- cleanup /var/lib/samba/codepage/src
+
+* Tue Aug 21 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1a-7mdk
+- moved codepage generation to %install and codepage dir to /var/lib/samba
+
+* Tue Aug 21 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1a-6mdk
+- /lib/* was in both samba and samba-common
+  Introducing samba-doc: "alas, for the sake of thy modem, shalt thou remember
+  when Samba was under the Megabyte..."
+
+* Fri Aug 03 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1a-5mdk
+- Added "the gc touch" to smbinit through the use of killall -0 instead of
+  grep cupsd | grep -v grep (too many greps :o)
+
+* Wed Jul 18 2001 Stefan van der Eijk <stefan@eijk.nu> 2.2.1a-4mdk
+- BuildRequires: libcups-devel
+- Removed BuildRequires: openssl-devel
+
+* Fri Jul 13 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1a-3mdk
+- replace chkconfig --add/del with --level 35 on/reset.
+
+* Fri Jul 13 2001 Geoffrey Lee <snailtalk@mandrakesoft.cm> 2.2.1a-2mdk
+- Replace discription s/inetd/xinetd/, we all love xinetd, blah.
+
+* Thu Jul 12 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.1a-1mdk
+- Bugfix release. Fixed add user script, added print$ share and printer admin
+  We need to test interaction of new print support with CUPS, but printer
+  driver uploads should work.
+
+* Wed Jul 11 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-17mdk
+- fixed smb.conf a bit, rebuilt on cooker.
+
+* Tue Jul 10 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.1-16mdk
+- Finally, samba 2.2.1 has actually been release. At least we were ready!
+  Cleaned up smb.conf, and added some useful entries for domain controlling.
+  Migrated changes made in samba's samba2.spec for 2.2.1  to this file.
+  Added groupadd command in post to create a group for samba machine accounts.
+  (We should still check the postun, samba removes pam, logs and cache)
+
+* Tue Jun 26 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-15mdk
+- fixed smbwrapper compile options.
+
+* Tue Jun 26 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-14mdk
+- added LFS support.
+  added smbwrapper support (smbsh)
+
+* Wed Jun 20 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-13mdk
+- /sbin/mount.smb and /sbin/mount.smbfs now point to the correct location
+  of smbmount (/usr/bin/smbmount)
+
+* Tue Jun 19 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-12mdk
+- smbmount and smbumount are now in /usr/bin and SUID.
+  added ||: to triggerpostun son you don't get error 1 anymore when rpm -e
+  Checked the .bz2 sources with file *: everything is OK now (I'm so stupid ;o)!
+
+* Tue Jun 19 2001 Geoffrey Lee <snailtalk@mandrakesoft.com> 2.2.1-11mdk
+- s/Copyright/License/;
+- Stop Sylvester from pretending .gz source to be .bz2 source via filename
+  aka really bzip2 the source.
+
+* Mon Jun 18 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-10mdk
+- changed Till's startup script modifications: now samba is being reloaded
+  automatically 1 minute after it has started (same reasons as below in 9mdk)
+  added _post_ and _preun_ for service smb
+  fixed creation of /var/lib/samba/{netlogon,profiles} (%dir was missing)
+
+* Thu Jun 14 2001 Till Kamppeter <till@mandrakesoft.com> 2.2.1-9mdk
+- Modified the Samba startup script so that in case of CUPS being used as
+  printing system Samba only starts when the CUPS daemon is ready to accept
+  requests. Otherwise the CUPS queues would not appear as Samba shares.
+
+* Mon Jun 11 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-8mdk
+- patched smbmount.c to have it call smbmnt in sbin (thanks Seb).
+
+* Wed May 30 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-7mdk
+- put SWAT menu icons back in place.
+
+* Mon May 28 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-6mdk
+- OOPS! fixed smbmount symlinks
+
+* Mon May 28 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-5mdk
+- removed inetd postun script, replaced with xinetd.
+  updated binary list (smbcacls...)
+  cleaned samba.spec
+
+* Mon May 28 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.1-4mdk
+- Changed configure options to point to correct log and codepage directories,
+  added crude script to fix logrotate file for new log file names, updated
+  patches to work with current CVS.
+
+* Thu May 24 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-3mdk
+- Cleaned and updated the %files section.
+
+* Sat May 19 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.1-2mdk
+- Moved all samba files from /etc to /etc/samba (Thanks DomS!).
+  Fixed fixinit patch (/etc/samba/smb.conf)
+
+* Fri May 18 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.1-1mdk
+- Now use packaging/Mandrake/smb.conf, removed unused and obsolete
+  patches, moved netlogon and profile shares to /var/lib/samba in the
+  smb.conf to match the spec file. Added configuration for ntlogon to
+  smb.conf. Removed pam-foo, fixinit and makefilepath patches. Removed
+  symlink I introduced in 2.2.0-1mdk
+
+* Thu May 3 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.0-5mdk
+- Added more configure options. Changed Description field (thx John T).
+
+* Wed Apr 25 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.0-4mdk
+- moved netlogon and profiles to /var/lib/samba by popular demand ;o)
+
+* Tue Apr 24 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.0-3mdk
+- moved netlogon and profiles back to /home.
+
+* Fri Apr 20 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.2.0-2mdk
+- fixed post inetd/xinetd script&
+
+* Thu Apr 19 2001 Buchan Milne <bgmilne@cae.co.za> 2.2.0-1mdk
+- Upgrade to 2.2.0. Merged most of 2.0.7-25mdk's patches (beware
+  nasty "ln -sf samba-%{ver} ../samba-2.0.7" hack to force some patches
+  to take. smbadduser and addtosmbpass seem to have disappeared. Moved
+  all Mandrake-specific files to packaging/Mandrake and made patches
+  from those shipped with samba. Moved netlogon to /home/samba and added
+  /home/samba/profiles. Added winbind,smbfilter and debug2html to make command.
+
+* Thu Apr 12 2001 Frederic Crozat <fcrozat@mandrakesoft.com> 2.0.7-25mdk
+- Fix menu entry and provide separate menu entry for GNOME
+  (nautilus doesn't support HTTP authentication yet)
+- Add icons in package
+
+* Fri Mar 30 2001 Frederic Lepied <flepied@mandrakesoft.com> 2.0.7-24mdk
+- use new server macros
+
+* Wed Mar 21 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-23mdk
+- check whether /etc/inetd.conf exists (upgrade) or not (fresh install).
+
+* Thu Mar 15 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-22mdk
+- spec cosmetics, added '-r' option to lpr-cups command line so files are
+  removed from /var/spool/samba after printing.
+
+* Tue Mar 06 2001 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-21mdk
+- merged last rh patches.
+
+* Thu Nov 23 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-20mdk
+- removed dependencies on cups and cups-devel so one can install samba without using cups
+- added /home/netlogon
+
+* Mon Nov 20 2000 Till Kamppeter <till@mandrakesoft.com> 2.0.7-19mdk
+- Changed default print command in /etc/smb.conf, so that the Windows
+  driver of the printer has to be used on the client.
+- Fixed bug in smbspool which prevented from printing from a
+  Linux-Samba-CUPS client to a Windows server through the guest account.
+
+* Mon Oct 16 2000 Till Kamppeter <till@mandrakesoft.com> 2.0.7-18mdk
+- Moved "smbspool" (Samba client of CUPS) to the samba-client package
+
+* Sat Oct 7 2000 Stefan van der Eijk <s.vandereijk@chello.nl> 2.0.7-17mdk
+- Added RedHat's "quota" patch to samba-glibc21.patch.bz2, this fixes
+  quota related compile problems on the alpha.
+
+* Wed Oct 4 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-16mdk
+- Fixed 'guest ok = ok' flag in smb.conf
+
+* Tue Oct 3 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-15mdk
+- Allowed guest account to print in smb.conf
+- added swat icon in menu
+
+* Tue Oct 3 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-14mdk
+- Removed rh ssl patch and --with-ssl flag: not appropriate for 7.2
+
+* Tue Oct 3 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-13mdk
+- Changed fixinit patch.
+- Changed smb.conf for better CUPS configuration.
+- Thanks Fred for doing this ---vvv.
+
+* Tue Oct  3 2000 Frederic Lepied <flepied@mandrakesoft.com> 2.0.7-12mdk
+- menu entry for web configuration tool.
+- merge with rh: xinetd + ssl + pam_stack.
+- Added smbadduser rh-bugfix w/o relocation of config-files.
+
+* Mon Oct  2 2000 Frederic Lepied <flepied@mandrakesoft.com> 2.0.7-11mdk
+- added build requires on cups-devel and pam-devel.
+
+* Mon Oct  2 2000 Till Kamppeter <till@mandrakesoft.com> 2.0.7-10mdk
+- Fixed smb.conf entry for CUPS: "printcap name = lpstat", "lpstats" was
+  wrong.
+
+* Mon Sep 25 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-9mdk
+- Cosmetic changes to make rpmlint more happy
+
+* Wed Sep 11 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-8mdk
+- added linkage to the using_samba book in swat
+
+* Fri Sep 01 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-7mdk
+- Added CUPS support to smb.conf
+- Added internationalization options to smb.conf [Global]
+
+* Wed Aug 30 2000 Till Kamppeter <till@mandrakesoft.com> 2.0.7-6mdk
+- Put "smbspool" to the files to install
+
+* Wed Aug 30 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-5mdk
+- Did some cleaning in the patches
+
+* Fri Jul 28 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-4mdk
+- relocated man pages from /usr/man to /usr/share/man for compatibility reasons
+
+* Fri Jul 28 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-3mdk
+- added make_unicodemap and build of unicode_map.$i in the spec file
+
+* Fri Jul 28 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-2mdk
+- renamed /etc/codepage/codepage.$i into /etc/codepage/unicode_map.$i to fix smbmount bug.
+
+* Fri Jul 07 2000 Sylvestre Taburet <staburet@mandrakesoft.com> 2.0.7-1mdk
+- 2.0.7
+
+* Wed Apr 05 2000 Francis Galiegue <fg@mandrakesoft.com> 2.0.6-4mdk
+
+- Titi sucks, does not put versions in changelog
+- Fixed groups for -common and -client
+- /usr/sbin/samba is no config file
+
+* Thu Mar 23 2000 Thierry Vignaud <tvignaud@mandrakesoft.com>
+- fix buggy post install script (pixel)
+
+* Fri Mar 17 2000 Francis Galiegue <francis@mandrakesoft.com> 2.0.6-2mdk
+
+- Changed group according to 7.1 specs
+- Some spec file changes
+- Let spec-helper do its job
+
+* Thu Nov 25 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
+- 2.0.6.
+
+* Tue Nov  2 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
+- Merge with rh changes.
+- Split in 3 packages.
+
+* Fri Aug 13 1999 Pablo Saratxaga <pablo@@mandrakesoft.com>
+- corrected a bug with %post (the $1 parameter is "1" in case of
+  a first install, not "0". That parameter is the number of packages
+  of the same name that will exist after running all the steps if nothing
+  is removed; so it is "1" after first isntall, "2" for a second install
+  or an upgrade, and "0" for a removal)
+
+* Wed Jul 28 1999 Pablo Saratxaga <pablo@@mandrakesoft.com>
+- made smbmnt and smbumount suid root, and only executable by group 'smb'
+  add to 'smb' group any user that should be allowed to mount/unmount
+  SMB shared directories
+
+* Fri Jul 23 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
+- 2.0.5a (bug security fix).
+
+* Wed Jul 21 1999 Axalon Bloodstone <axalon@linux-mandrake.com>
+- 2.0.5
+- cs/da/de/fi/fr/it/tr descriptions/summaries
+
+* Sun Jun 13 1999 Bernhard Rosenkränzer <bero@mandrakesoft.com>
+- 2.0.4b
+- recompile on a system that works ;)
+
+* Wed Apr 21 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
+- Mandrake adaptations.
+- Bzip2 man-pages.
+
+* Fri Mar 26 1999 Bill Nottingham <notting@redhat.com>
+- add a mount.smb to make smb mounting a little easier.
+- smb filesystems apparently do not work on alpha. Oops.
+
+* Thu Mar 25 1999 Bill Nottingham <notting@redhat.com>
+- always create codepages
+
+* Tue Mar 23 1999 Bill Nottingham <notting@redhat.com>
+- logrotate changes
+
+* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
+- auto rebuild in the new build environment (release 3)
+
+* Fri Mar 19 1999 Preston Brown <pbrown@redhat.com>
+- updated init script to use graceful restart (not stop/start)
+
+* Tue Mar  9 1999 Bill Nottingham <notting@redhat.com>
+- update to 2.0.3
+
+* Thu Feb 18 1999 Bill Nottingham <notting@redhat.com>
+- update to 2.0.2
+
+* Mon Feb 15 1999 Bill Nottingham <notting@redhat.com>
+- swat swat
+
+* Tue Feb  9 1999 Bill Nottingham <notting@redhat.com>
+- fix bash2 breakage in post script
+
+* Fri Feb  5 1999 Bill Nottingham <notting@redhat.com>
+- update to 2.0.0
+
+* Mon Oct 12 1998 Cristian Gafton <gafton@redhat.com>
+- make sure all binaries are stripped
+
+* Thu Sep 17 1998 Jeff Johnson <jbj@redhat.com>
+- update to 1.9.18p10.
+- fix %triggerpostun.
+
+* Tue Jul 07 1998 Erik Troan <ewt@redhat.com>
+- updated postun triggerscript to check $0
+- clear /etc/codepages from %preun instead of %postun
+
+* Mon Jun 08 1998 Erik Troan <ewt@redhat.com>
+- made the %postun script a tad less agressive; no reason to remove
+  the logs or lock file (after all, if the lock file is still there,
+  samba is still running)
+- the %postun and %preun should only exectute if this is the final
+  removal
+- migrated %triggerpostun from Red Hat's samba package to work around
+  packaging problems in some Red Hat samba releases
 
 
+* Sun Apr 26 1998 John H Terpstra <jht@samba.anu.edu.au>
+- minor tidy up in preparation for release of 1.9.18p5
+- added findsmb utility from SGI package
 
 
+* Wed Mar 18 1998 John H Terpstra <jht@samba.anu.edu.au>
+- Updated version and codepage info.
+- Release to test name resolve order
 
 
+* Sat Jan 24 1998 John H Terpstra <jht@samba.anu.edu.au>
+- Many optimisations (some suggested by Manoj Kasichainula <manojk@io.com>
+- Use of chkconfig in place of individual symlinks to /etc/rc.d/init/smb
+- Compounded make line
+- Updated smb.init restart mechanism
+- Use compound mkdir -p line instead of individual calls to mkdir
+- Fixed smb.conf file path for log files
+- Fixed smb.conf file path for incoming smb print spool directory
+- Added a number of options to smb.conf file
+- Added smbadduser command (missed from all previous RPMs) - Doooh!
+- Added smbuser file and smb.conf file updates for username map
index a14e90ec16b2758da8dc71f23dc74b4b6836f68e..f68d48cb4b3c2dfea297c82104b124ef964546bb 100644 (file)
@@ -1,3 +1,4 @@
+
 # This is the main Samba configuration file. You should read the
 # smb.conf(5) manual page in order to understand the options listed
 # here. Samba has a huge number of configurable options (perhaps too
 # This is the main Samba configuration file. You should read the
 # smb.conf(5) manual page in order to understand the options listed
 # here. Samba has a huge number of configurable options (perhaps too
 #======================= Global Settings =====================================
 [global]
 
 #======================= Global Settings =====================================
 [global]
 
+# 1. Server Naming Options:
 # workgroup = NT-Domain-Name or Workgroup-Name
    workgroup = MDKGROUP
 
 # workgroup = NT-Domain-Name or Workgroup-Name
    workgroup = MDKGROUP
 
+# netbios name is the name you will see in "Network Neighbourhood",
+# but defaults to your hostname
+;  netbios name = <name_of_this_server>
+
 # server string is the equivalent of the NT Description field
    server string = Samba Server %v
 
 # server string is the equivalent of the NT Description field
    server string = Samba Server %v
 
-# This option is important for security. It allows you to restrict
-# connections to machines which are on your local network. The
-# following example restricts access to two C class networks and
-# the "loopback" interface. For more examples of the syntax see
-# the smb.conf man page
-;   hosts allow = 192.168.1. 192.168.2. 127.
-
-# Enabling internationalization:
-# you can match a Windows code page with a UNIX character set.
-# Windows: 437 (US), 737 (GREEK), 850 (Latin1 - Western European),
-# 852 (Eastern Eu.), 861 (Icelandic), 932 (Cyrillic - Russian),
-# 936 (Japanese - Shift-JIS), 936 (Simpl. Chinese), 949 (Korean Hangul),
-# 950 (Trad. Chin.).
-# UNIX: ISO8859-1 (Western European), ISO8859-2 (Eastern Eu.),
-# ISO8859-5 (Russian Cyrillic), KOI8-R (Alt-Russ. Cyril.)
-# This is an example for french users:
-;   client code page = 850
-;   character set = ISO8859-1
-
+# Message command is run by samba when a "popup" message is sent to it.
+# The example below is for use with LinPopUp:
+; message command = /usr/bin/linpopup "%f" "%m" %s; rm %s
 
 
+# 2. Printing Options:
 # CHANGES TO ENABLE PRINTING ON ALL CUPS PRINTERS IN THE NETWORK
 # (as cups is now used in linux-mandrake 7.2 by default)
 # if you want to automatically load your printer list rather
 # CHANGES TO ENABLE PRINTING ON ALL CUPS PRINTERS IN THE NETWORK
 # (as cups is now used in linux-mandrake 7.2 by default)
 # if you want to automatically load your printer list rather
 # bsd, sysv, plp, lprng, aix, hpux, qnx, cups
    printing = cups
 
 # bsd, sysv, plp, lprng, aix, hpux, qnx, cups
    printing = cups
 
-
-# Uncomment this if you want a guest account, you must add this to /etc/passwd
-# otherwise the user "nobody" is used
-;  guest account = pcguest
-
+# Samba 2.2 supports the Windows NT-style point-and-print feature. To
+# use this, you need to be able to upload print drivers to the samba
+# server. The printer admins (or root) may install drivers onto samba.
+# Note that this feature uses the print$ share, so you will need to 
+# enable it below.
+# This parameter works like domain admin group:
+# printer admin = @<group> <user>
+;   printer admin = @adm
+# This should work well for winbind:
+;   printer admin = @"Domain Admins"
+
+# 3. Logging Options:
 # this tells Samba to use a separate log file for each machine
 # that connects
    log file = /var/log/samba/log.%m
 # this tells Samba to use a separate log file for each machine
 # that connects
    log file = /var/log/samba/log.%m
 # Put a capping on the size of the log files (in Kb).
    max log size = 50
 
 # Put a capping on the size of the log files (in Kb).
    max log size = 50
 
+# Set the log (verbosity) level (0 <= log level <= 10)
+; log level = 3
+
+# 4. Security and Domain Membership Options:
+# This option is important for security. It allows you to restrict
+# connections to machines which are on your local network. The
+# following example restricts access to two C class networks and
+# the "loopback" interface. For more examples of the syntax see
+# the smb.conf man page. Do not enable this if (tcp/ip) name resolution does
+# not work for all the hosts in your network.
+;   hosts allow = 192.168.1. 192.168.2. 127.
+
+# Uncomment this if you want a guest account, you must add this to /etc/passwd
+# otherwise the user "nobody" is used
+;  guest account = pcguest
+
 # Security mode. Most people will want user level security. See
 # security_level.txt for details.
    security = user
 # Security mode. Most people will want user level security. See
 # security_level.txt for details.
    security = user
-# Use password server option only with security = server
+# Use password server option only with security = server or security = domain
+# When using security = domain, you should use password server = *
 ;   password server = <NT-Server-Name>
 ;   password server = <NT-Server-Name>
+;   password server = *
 
 # Password Level allows matching of _n_ characters of the password for
 # all combinations of upper and lower case.
 
 # Password Level allows matching of _n_ characters of the password for
 # all combinations of upper and lower case.
 # You may wish to use password encryption. Please read
 # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
 # Do not enable this option unless you have read those documents
 # You may wish to use password encryption. Please read
 # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
 # Do not enable this option unless you have read those documents
-;  encrypt passwords = yes
-;  smb passwd file = /etc/samba/private/smbpasswd
+# Encrypted passwords are required for any use of samba in a Windows NT domain
+# The smbpasswd file is only required by a server doing authentication, thus
+# members of a domain do not need one.
+  encrypt passwords = yes
+  smb passwd file = /etc/samba/smbpasswd
 
 # The following are needed to allow password changing from Windows to
 
 # The following are needed to allow password changing from Windows to
-# update the Linux sytsem password also.
+# also update the Linux system password.
 # NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
 # NOTE2: You do NOT need these to allow workstations to change only
 #        the encrypted SMB passwords. They allow the Unix password
 #        to be kept in sync with the SMB password.
 ;  unix password sync = Yes
 # NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
 # NOTE2: You do NOT need these to allow workstations to change only
 #        the encrypted SMB passwords. They allow the Unix password
 #        to be kept in sync with the SMB password.
 ;  unix password sync = Yes
+# You either need to setup a passwd program and passwd chat, or
+# enable pam password change
+;  pam password change = yes
 ;  passwd program = /usr/bin/passwd %u
 ;  passwd program = /usr/bin/passwd %u
-;  passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
+;  passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n
+;*passwd:*all*authentication*tokens*updated*successfully*
 
 # Unix users can map to different SMB User names
 
 # Unix users can map to different SMB User names
-;  username map = /etc/smbusers
+;  username map = /etc/samba/smbusers
 
 # Using the following line enables you to customise your configuration
 # on a per machine basis. The %m gets replaced with the netbios name
 # of the machine that is connecting
 
 # Using the following line enables you to customise your configuration
 # on a per machine basis. The %m gets replaced with the netbios name
 # of the machine that is connecting
-;   include = /etc/smb.conf.%m
+;   include = /etc/samba/smb.conf.%m
+
+# Options for using winbind. Winbind allows you to do all account and
+# authentication from a Windows or samba domain controller, creating
+# accounts on the fly, and maintaining a mapping of Windows RIDs to unix uid's 
+# and gid's. winbind uid and winbind gid are the only required parameters.
+#
+# winbind uid is the range of uid's winbind can use when mapping RIDs to uid's
+;  winbind uid = 10000-20000
+#
+# winbind gid is the range of uid's winbind can use when mapping RIDs to gid's
+;  winbind gid = 10000-20000
+#
+# winbind separator is the character a user must use between their domain
+# name and username, defaults to "\"
+;  winbind separator = +
+#
+# winbind use default domain allows you to have winbind return usernames
+# in the form user instead of DOMAIN+user for the domain listed in the
+# workgroup parameter.
+;  winbind use default domain = yes
+#
+# template homedir determines the home directory for winbind users, with 
+# %D expanding to their domain name and %U expanding to their username:
+;  template homedir = /home/%D/%U
+
+# When using winbind, you may want to have samba create home directories
+# on the fly for authenticated users. Ensure that /etc/pam.d/samba is
+# using 'service=system-auth-winbind' in pam_stack modules, and then
+# enable obedience of pam restrictions below:
+;  obey pam restrictions = yes
+
+#
+# template shell determines the shell users authenticated by winbind get
+;  template shell = /bin/bash
 
 
+# 5. Browser Control and Networking Options:
 # Most people will find that this option gives better performance.
 # See speed.txt and the manual pages for details
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
 # Most people will find that this option gives better performance.
 # See speed.txt and the manual pages for details
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
 
 # Configure remote browse list synchronisation here
 #  request announcement to, or browse list sync from:
 
 # Configure remote browse list synchronisation here
 #  request announcement to, or browse list sync from:
-#      a specific host or from / to a whole subnet (see below)
+#       a specific host or from / to a whole subnet (see below)
 ;   remote browse sync = 192.168.3.25 192.168.5.255
 # Cause this host to announce itself to local subnets here
 ;   remote announce = 192.168.1.255 192.168.2.44
 
 ;   remote browse sync = 192.168.3.25 192.168.5.255
 # Cause this host to announce itself to local subnets here
 ;   remote announce = 192.168.1.255 192.168.2.44
 
-# Browser Control Options:
 # set local master to no if you don't want Samba to become a master
 # browser on your network. Otherwise the normal election rules apply
 ;   local master = no
 # set local master to no if you don't want Samba to become a master
 # browser on your network. Otherwise the normal election rules apply
 ;   local master = no
 # and gives it a slightly higher chance of winning the election
 ;   preferred master = yes
 
 # and gives it a slightly higher chance of winning the election
 ;   preferred master = yes
 
+# 6. Domain Control Options:
 # Enable this if you want Samba to be a domain logon server for 
 # Enable this if you want Samba to be a domain logon server for 
-# Windows95 workstations
+# Windows95 workstations or Primary Domain Controller for WinNT and Win2k
 ;   domain logons = yes
 
 # if you enable domain logons then you may want a per-machine or
 ;   domain logons = yes
 
 # if you enable domain logons then you may want a per-machine or
 # run a specific logon batch file per username
 ;   logon script = %U.bat
 
 # run a specific logon batch file per username
 ;   logon script = %U.bat
 
-# Where to store roving profiles (only for Win95 and WinNT)
+# Where to store roaming profiles for WinNT and Win2k
 #        %L substitutes for this servers netbios name, %U is username
 #        You must uncomment the [Profiles] share below
 ;   logon path = \\%L\Profiles\%U
 
 #        %L substitutes for this servers netbios name, %U is username
 #        You must uncomment the [Profiles] share below
 ;   logon path = \\%L\Profiles\%U
 
+# Where to store roaming profiles for Win9x. Be careful with this as it also
+# impacts where Win2k finds it's /HOME share
+; logon home = \\%L\%U\.profile
+
+# The add user script is used by a domain member to add local user accounts
+# that have been authenticated by the domain controller, or by the domain
+# controller to add local machine accounts when adding machines to the domain.
+# The script must work from the command line when replacing the macros,
+# or the operation will fail. Check that groups exist if forcing a group.
+# Script for domain controller for adding machines:
+; add user script = /usr/sbin/useradd -d /dev/null -g machines -c 'Machine Account' -s /bin/false -M %u
+# Script for domain controller with LDAP backend for adding machines (please
+# configure in /etc/samba/smbldap_conf.pm first):
+; add user script = /usr/share/samba/scripts/smbldap-useradd.pl -w -d /dev/null -g machines -c 'Machine Account' -s /bin/false %u
+# Script for domain member for adding local accounts for authenticated users:
+; add user script = /usr/sbin/useradd -s /bin/false %u
+
+# Domain groups:
+# domain admin group is a list of unix users or groups who are made members
+# of the Domain Admin group
+; domain admin group = root @wheel
+#
+# domain guest groups is a list of unix users or groups who are made members
+# of the Domain Guests group
+; domain guest group = nobody @guest
+
+# LDAP configuration for Domain Controlling:
+# The account (dn) that samba uses to access the LDAP server
+# This account needs to have write access to the LDAP tree
+# You will need to give samba the password for this dn, by 
+# running 'smbpasswd -w mypassword'
+; ldap admin dn = cn=root,dc=mydomain,dc=com
+; ldap ssl = start_tls
+# start_tls should run on 389, but samba defaults incorrectly to 636
+; ldap port = 389
+; ldap suffix = dc=mydomain,dc=com
+; ldap server = ldap.mydomain.com
+
+
+# 7. Name Resolution Options:
 # All NetBIOS names must be resolved to IP Addresses
 # 'Name Resolve Order' allows the named resolution mechanism to be specified
 # the default order is "host lmhosts wins bcast". "host" means use the unix
 # All NetBIOS names must be resolved to IP Addresses
 # 'Name Resolve Order' allows the named resolution mechanism to be specified
 # the default order is "host lmhosts wins bcast". "host" means use the unix
 ;   wins support = yes
 
 # WINS Server - Tells the NMBD components of Samba to be a WINS Client
 ;   wins support = yes
 
 # WINS Server - Tells the NMBD components of Samba to be a WINS Client
-#      Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
+#       Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
 ;   wins server = w.x.y.z
 
 # WINS Proxy - Tells Samba to answer name resolution queries on
 # behalf of a non WINS capable client, for this to work there must be
 ;   wins server = w.x.y.z
 
 # WINS Proxy - Tells Samba to answer name resolution queries on
 # behalf of a non WINS capable client, for this to work there must be
-# at least one WINS Server on the network. The default is NO.
+# at least one  WINS Server on the network. The default is NO.
 ;   wins proxy = yes
 
 # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
 ;   wins proxy = yes
 
 # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
 # this has been changed in version 1.9.18 to no.
    dns proxy = no 
 
 # this has been changed in version 1.9.18 to no.
    dns proxy = no 
 
+# 8. File Naming Options:
 # Case Preservation can be handy - system default is _no_
 # NOTE: These can be set on a per share basis
 ;  preserve case = no
 # Case Preservation can be handy - system default is _no_
 # NOTE: These can be set on a per share basis
 ;  preserve case = no
 # Be very careful with case sensitivity - it can break things!
 ;  case sensitive = no
 
 # Be very careful with case sensitivity - it can break things!
 ;  case sensitive = no
 
+# Enabling internationalization:
+# you can match a Windows code page with a UNIX character set.
+# Windows: 437 (US), 737 (GREEK), 850 (Latin1 - Western European),
+# 852 (Eastern Eu.), 861 (Icelandic), 932 (Cyrillic - Russian),
+# 936 (Japanese - Shift-JIS), 936 (Simpl. Chinese), 949 (Korean Hangul),
+# 950 (Trad. Chin.).
+# UNIX: ISO8859-1 (Western European), ISO8859-2 (Eastern Eu.),
+# ISO8859-5 (Russian Cyrillic), KOI8-R (Alt-Russ. Cyril.)
+# This is an example for french users:
+;   client code page = 850
+;   character set = ISO8859-1
+
+
 #============================ Share Definitions ==============================
 [homes]
    comment = Home Directories
    browseable = no
    writable = yes
 #============================ Share Definitions ==============================
 [homes]
    comment = Home Directories
    browseable = no
    writable = yes
+# You can enable VFS recycle bin on a per share basis:
+# Uncomment the next 2 lines (make sure you create a
+# .recycle folder in the base of the share and ensure
+# all users will have write access to it. See
+# examples/VFS/recycle/REAME in samba-doc for details
+;   vfs object = /usr/lib/samba/vfs/recycle.so
+;   vfs options= /etc/samba/recycle.conf
 
 # Un-comment the following and create the netlogon directory for Domain Logons
 ; [netlogon]
 
 # Un-comment the following and create the netlogon directory for Domain Logons
 ; [netlogon]
 ;   path = /var/lib/samba/netlogon
 ;   guest ok = yes
 ;   writable = no
 ;   path = /var/lib/samba/netlogon
 ;   guest ok = yes
 ;   writable = no
-;   share modes = no
 
 #Uncomment the following 2 lines if you would like your login scripts to
 #be created dynamically by ntlogon (check that you have it in the correct
 
 #Uncomment the following 2 lines if you would like your login scripts to
 #be created dynamically by ntlogon (check that you have it in the correct
-#locationn (the default of the ntlogon rpm available in contribs)
+#location (the default of the ntlogon rpm available in contribs)
 ;root preexec = /usr/bin/ntlogon -u %U -g %G -o %a -d /var/lib/samba/netlogon
 ;root postexec = rm -f /var/lib/samba/netlogon/%U.bat
 
 ;root preexec = /usr/bin/ntlogon -u %U -g %G -o %a -d /var/lib/samba/netlogon
 ;root postexec = rm -f /var/lib/samba/netlogon/%U.bat
 
 # =====================================
 # print command: see above for details.
 # =====================================
 # =====================================
 # print command: see above for details.
 # =====================================
-   print command = lpr-cups -P %p -o raw %s -r  # using client side printer drivers.
+   print command = lpr-cups -P %p -o raw %s -r   # using client side printer drivers.
 ;   print command = lpr-cups -P %p %s # using cups own drivers (use generic PostScript on clients).
 ;   print command = lpr-cups -P %p %s # using cups own drivers (use generic PostScript on clients).
-   lpq command = lpstat -o %p
-   lprm command = cancel %p-%j
+# The following two commands are the samba defaults for printing=cups
+# change them only if you need different options:
+;   lpq command = lpq -P %p
+;   lprm command = cancel %p-%j
+
+# This share is used for Windows NT-style point-and-print support.
+# To be able to install drivers, you need to be either root, or listed
+# in the printer admin parameter above. Note that you also need write access
+# to the directory and share definition to be able to upload the drivers.
+# For more information on this, please see the Printing Support Section of
+# /usr/share/doc/samba-<version>/docs/Samba-HOWTO-Collection.pdf 
+[print$]
+   path = /var/lib/samba/printers
+   browseable = yes
+   read only = yes
+   write list = @adm root
+
+# A useful application of samba is to make a PDF-generation service
+# To streamline this, install windows postscript drivers (preferably colour)
+# on the samba server, so that clients can automatically install them.
+
+[pdf-generator]
+   path = /var/tmp
+   guest ok = No
+   printable = Yes
+   comment = PDF Generator (only valid users)
+   #print command = /usr/share/samba/scripts/print-pdf file path win_path recipient IP &
+   print command = /usr/share/samba/scripts/print-pdf %s ~%u \\\\\\\\%L\\\\%u %m %I &
 
 # This one is useful for people to share files
 ;[tmp]
 
 # This one is useful for people to share files
 ;[tmp]
 ;   public = yes
 ;   writable = no
 ;   write list = @staff
 ;   public = yes
 ;   writable = no
 ;   write list = @staff
+# Audited directory through experimental VFS audit.so module:
+# Uncomment next line.
+;   vfs object = /usr/lib/samba/vfs/audit.so
 
 # Other examples. 
 #
 
 # Other examples. 
 #
-# A private printer, usable only by fred. Spool data will be placed in fred's
+# A private printer, usable only by Fred. Spool data will be placed in Fred's
 # home directory. Note that fred must have write access to the spool directory,
 # wherever it is.
 ;[fredsprn]
 # home directory. Note that fred must have write access to the spool directory,
 # wherever it is.
 ;[fredsprn]
 ;   writable = no
 ;   printable = yes
 
 ;   writable = no
 ;   printable = yes
 
-# A private directory, usable only by fred. Note that fred requires write
+# A private directory, usable only by Fred. Note that Fred requires write
 # access to the directory.
 ;[fredsdir]
 ;   comment = Fred's Service
 # access to the directory.
 ;[fredsdir]
 ;   comment = Fred's Service
 ;   printable = no
 ;   create mask = 0765
 
 ;   printable = no
 ;   create mask = 0765
 
-
index 8855f04efba95f5efaa312a34f0c73823159bf44..bdc151870950908970d01fecf8b85a05af100de9 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
 #!/bin/sh
 #
-# chkconfig: - 91 35
+# chkconfig: 35 91 9
 # description: Starts and stops the Samba smbd and nmbd daemons \
 #             used to provide SMB network services.
 
 # description: Starts and stops the Samba smbd and nmbd daemons \
 #             used to provide SMB network services.
 
@@ -26,6 +26,12 @@ RETVAL=0
 
 
 start() {
 
 
 start() {
+       # If CUPS is used as printing system, reload smb after a 1 minute delay
+       # to allow the printers to appear properly as samba shares.
+        if killall -0 cupsd 2>/dev/null; then
+         ( sleep 60 && killproc smbd -HUP ) &
+       fi
+       export TMPDIR="/var/tmp"
        echo -n "Starting SMB services: "
        daemon smbd -D  
        RETVAL=$?
        echo -n "Starting SMB services: "
        daemon smbd -D  
        RETVAL=$?
@@ -55,6 +61,7 @@ restart() {
        start
 }      
 reload() {
        start
 }      
 reload() {
+       export TMPDIR="/var/tmp"
         echo -n "Reloading smb.conf file: "
        killproc smbd -HUP
        RETVAL=$?
         echo -n "Reloading smb.conf file: "
        killproc smbd -HUP
        RETVAL=$?
diff --git a/packaging/Mandrake/smbmount-sbin.patch b/packaging/Mandrake/smbmount-sbin.patch
new file mode 100644 (file)
index 0000000..b638720
--- /dev/null
@@ -0,0 +1,15 @@
++++ samba-2.2.1/source/client/smbmount.c       Sun Apr 15 01:03:46 2001
+--- samba-2.2.1/source/client/smbmount.c.seb   Mon Jun 11 14:26:23 2001
+@@ -484,9 +484,9 @@
+       }
+       if (sys_fork() == 0) {
+-              if (file_exist(BINDIR "/smbmnt", NULL)) {
+-                      execv(BINDIR "/smbmnt", args);
+-                      fprintf(stderr,"execv of %s failed. Error was %s.", BINDIR "/smbmnt", strerror(errno));
++              if (file_exist(SBINDIR "/smbmnt", NULL)) {
++                      execv(SBINDIR "/smbmnt", args);
++                      fprintf(stderr,"execv of %s failed. Error was %s.", SBINDIR "/smbmnt", strerror(errno));
+               } else {
+                       execvp("smbmnt", args);
+                       fprintf(stderr,"execvp of smbmnt failed. Error was %s.", strerror(errno) );
diff --git a/packaging/Mandrake/smbw.patch b/packaging/Mandrake/smbw.patch
new file mode 100644 (file)
index 0000000..0abbfdf
--- /dev/null
@@ -0,0 +1,10 @@
+--- samba-2.0.0/source/smbwrapper/smbsh.in.orig        Mon Oct  5 22:37:01 1998
++++ samba-2.0.0/source/smbwrapper/smbsh.in     Mon Oct  5 22:37:51 1998
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+-SMBW_LIBDIR=${SMBW_LIBDIR-@builddir@/smbwrapper}
++SMBW_LIBDIR=${SMBW_LIBDIR-/usr/bin}
+ if [ ! -f ${SMBW_LIBDIR}/smbwrapper.so ]; then
+     echo You need to set LIBDIR in smbsh
diff --git a/packaging/Mandrake/system-auth-winbind.pamd b/packaging/Mandrake/system-auth-winbind.pamd
new file mode 100644 (file)
index 0000000..af859af
--- /dev/null
@@ -0,0 +1,17 @@
+#%PAM-1.0
+
+auth        required      /lib/security/pam_env.so
+auth        sufficient    /lib/security/pam_winbind.so
+auth        sufficient    /lib/security/pam_unix.so likeauth nullok use_first_pass
+auth        required      /lib/security/pam_deny.so
+
+account     sufficient    /lib/security/pam_winbind.so
+account     required      /lib/security/pam_unix.so
+
+password    required      /lib/security/pam_cracklib.so retry=3
+password    sufficient    /lib/security/pam_unix.so nullok use_authtok md5 shadow
+password    required      /lib/security/pam_deny.so
+
+session     required      /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0022 
+session     required      /lib/security/pam_limits.so
+session     required      /lib/security/pam_unix.so
diff --git a/packaging/Mandrake/winbind.init b/packaging/Mandrake/winbind.init
new file mode 100644 (file)
index 0000000..b7b452e
--- /dev/null
@@ -0,0 +1,93 @@
+#!/bin/sh
+#
+# chkconfig: 345 81 45
+# description: Starts and stops the Samba winbind daemon to provide \
+# user and group information from a domain controller to linux.
+
+# Source function library.
+if [ -f /etc/init.d/functions ] ; then
+  . /etc/init.d/functions
+elif [ -f /etc/rc.d/init.d/functions ] ; then
+  . /etc/rc.d/init.d/functions
+else
+  exit 0
+fi
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ ${NETWORKING} = "no" ] && exit 0
+
+# Check that smb.conf exists.
+[ -f /etc/samba/smb.conf ] || exit 0
+
+RETVAL=0
+
+
+start() {
+       echo -n "Starting Winbind services: "
+       RETVAL=1
+       if [ "`grep -i 'winbind uid' /etc/samba/smb.conf | egrep -v [\#\;]`" ]; then
+               daemon winbindd
+               RETVAL=$?
+       else
+               echo "Winbind is not configured in /etc/samba/smb.conf, not starting"
+       fi
+       echo
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/winbind || \
+          RETVAL=1
+       return $RETVAL
+}      
+stop() {
+       echo -n "Shutting down Winbind services: "
+       RETVAL=1
+       if [ "`grep -i 'winbind uid' /etc/samba/smb.conf | egrep -v [\#\;]`" ]; then
+               killproc winbindd
+               RETVAL=$?
+       fi
+       echo
+       [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/winbind
+       return $RETVAL
+}      
+restart() {
+       stop
+       start
+}      
+reload() {
+       export TMPDIR="/var/tmp"
+        echo -n "Checking domain trusts: "
+       killproc winbindd -HUP
+       RETVAL=$?
+       echo
+       return $RETVAL
+}      
+mdkstatus() {
+       status winbindd
+}      
+
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  restart)
+       restart
+       ;;
+  reload)
+       reload
+       ;;
+  status)
+       mdkstatus
+       ;;
+  condrestart)
+       [ -f /var/lock/subsys/winbindd ] && restart || :
+       ;;
+  *)
+       echo "Usage: $0 {start|stop|restart|status|condrestart}"
+       exit 1
+esac
+
+exit $?