sync with SAMBA_2_2
[kai/samba.git] / packaging / RedHat / samba2.spec.tmpl
index 73ca9513366c0c592d3e9343ee44991f66c9d3d1..44a8fe998e36ff8ec85d8d4391b6303bcfef5780 100644 (file)
@@ -4,11 +4,9 @@ Version: PVERSION
 Release: PRELEASE
 Copyright: GNU GPL version 2
 Group: Networking
-Source: ftp://samba.org/pub/samba/samba-PVERSION.tar.gz
-Patch: makefile-path.patch
-Patch1: smbw.patch
+Source: ftp://samba.org/pub/samba/samba-%{version}.tar.gz
 Packager: John H Terpstra [Samba-Team] <jht@samba.org>
-Requires: pam >= 0.64 kernel >= 2.2.1 glibc >= 2.1.2
+Requires: pam >= 0.72 kernel >= 2.2.1 glibc >= 2.1.2
 Prereq: chkconfig fileutils
 BuildRoot: /var/tmp/samba
 Prefix: /usr
@@ -45,6 +43,22 @@ for Shadow passwords and quotas. Do NOT recompile with the
 SHADOW_PWD option enabled
 
 %changelog
+* Sat Mar 31 2001 Andrew Bartlett <abartlet@pcug.org.au>
+ - Changed prefix/share/man for _mandir/share/man
+  - Changed this for a sed macro MANDIR_MACRO
+  - This allows us to build both RH7 (RPM4)
+     and older versions from same specfile.
+ - Made makerpms.sh use the rpm -ta command rather 
+    than attempting to devine the correct location to 
+    put the file.  Also removes some /tmp symlink games.
+  - Allows build on RPM4
+ - Increased PAM requirements to allow us to use 
+   system-auth (this pam is in 6.x errata at least)
+
+* Tue Mar 27 2001 John H Terpstra <jht@samba.org>
+ - Fixed typos introduced by Sum Wun.
+ - Build for Red Hat 7.x
+
 * Sun Nov 12 2000 John H Terpstra <jht@samba.org>
  - Updated for Samba-2.2 releases
  - Added libnss_wins.so stuff
@@ -118,77 +132,73 @@ SHADOW_PWD option enabled
   - 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
 
 %prep
 %setup
-%patch -p1
-%patch1 -p1
 
 %build
 cd source
 
 %ifarch ia64
 libtoolize --copy --force     # get it to recognize IA-64
-autoconf
 autoheader
+autoconf
 EXTRA="-D_LARGEFILE64_SOURCE"
 %endif
 NUMCPU=`grep processor /proc/cpuinfo | wc -l`
 CFLAGS="$RPM_OPT_FLAGS $EXTRA" ./configure \
-       --prefix=%{prefix}\
-       --libdir=/etc \
-       --with-lockdir=/var/lock/samba \
-       --with-privatedir=/etc \
-       --with-swatdir=%{prefix}/share/swat \
+       --prefix=%{prefix} \
+       --localstatedir=/var \
+       --with-configdir=/etc/samba \
+       --with-privatedir=/etc/samba \
+       --with-codepagedir=/etc/codepages \
+       --with-fhs \
        --with-quotas \
        --with-smbmount \
        --with-pam \
-       --with-profile \
        --with-syslog \
        --with-utmp \
-       --with-vfs \
-       --with-msdfs \
        --with-netatalk \
-       --with-sambabook=%{prefix}/share/swat/using_samba
-make -j${NUMCPU} all smbfilter nsswitch/libnss_wins.so
-make -j${NUMCPU} smbtorture debug2html locktest2
-make -j${NUMCPU} masktest bin/smbspool
-#make -j${NUMCPU} rpctorture locktest smbwrapper bin/wbinfo
+       --with-sambabook=%{prefix}/share/swat/using_samba \
+       --with-swatdir=%{prefix}/share/swat
+make -j${NUMCPU} proto
+make -j${NUMCPU} all nsswitch/libnss_wins.so
+make -j${NUMCPU} debug2html
+make -j${NUMCPU} bin/smbspool
 
 
 %install
 rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/sbin
+mkdir -p $RPM_BUILD_ROOT/etc/samba
 mkdir -p $RPM_BUILD_ROOT/etc/codepages/src
-mkdir -p $RPM_BUILD_ROOT/etc/{logrotate.d,pam.d}
-mkdir -p $RPM_BUILD_ROOT/etc/rc.d/{init.d,rc0.d,rc1.d,rc2.d,rc3.d,rc5.d,rc6.d}
-mkdir -p $RPM_BUILD_ROOT/home/samba
+mkdir -p $RPM_BUILD_ROOT/etc/{logrotate.d,pam.d,samba}
+mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
 mkdir -p $RPM_BUILD_ROOT%{prefix}/{bin,sbin}
-mkdir -p $RPM_BUILD_ROOT/sbin
-mkdir -p $RPM_BUILD_ROOT%{prefix}/share/swat/{images,help,include}
-mkdir -p $RPM_BUILD_ROOT%{prefix}/man/{man1,man5,man7,man8}
+mkdir -p $RPM_BUILD_ROOT%{prefix}/share/swat/{images,help,include,using_samba}
+mkdir -p $RPM_BUILD_ROOT%{prefix}/share/swat/using_samba/{figs,gifs}
+mkdir -p $RPM_BUILD_ROOTMANDIR_MACRO
 mkdir -p $RPM_BUILD_ROOT/var/lock/samba
 mkdir -p $RPM_BUILD_ROOT/var/log/samba
 mkdir -p $RPM_BUILD_ROOT/var/spool/samba
+mkdir -p $RPM_BUILD_ROOT/lib
 
 # Install standard binary files
 for i in nmblookup smbclient smbpasswd smbstatus testparm testprns \
-      make_smbcodepage make_unicodemap make_printerdef rpcclient smbspool
-#      smbsh smbwrapper.so 
+      make_smbcodepage make_unicodemap make_printerdef rpcclient smbspool \
+      smbcacls smbcontrol
 do
 install -m755 -s source/bin/$i $RPM_BUILD_ROOT%{prefix}/bin
 done
-for i in addtosmbpass mksmbpasswd.sh smbtar 
+for i in mksmbpasswd.sh smbtar 
 do
 install -m755 source/script/$i $RPM_BUILD_ROOT%{prefix}/bin
 done
 
 # Install secure binary files
-for i in smbd nmbd swat smbmount smbumount smbmnt debug2html \
-      smbtorture smbfilter locktest2 masktest
-#     wbinfo
+for i in smbd nmbd swat smbmount smbumount smbmnt debug2html 
 do
 install -m755 -s source/bin/$i $RPM_BUILD_ROOT%{prefix}/sbin
 done
@@ -197,23 +207,25 @@ done
 ln -sf %{prefix}/sbin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
 ln -sf %{prefix}/sbin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
 
-# Install level 1 man pages
-for i in smbclient.1 smbrun.1 smbstatus.1 smbtar.1 testparm.1 testprns.1 make_smbcodepage.1 nmblookup.1
-do
-install -m644 docs/manpages/$i $RPM_BUILD_ROOT%{prefix}/man/man1
-done
+# This allows us to get away without duplicating code that 
+#  sombody else can maintain for us.  
+cd source
+make LIBDIR=$RPM_BUILD_ROOT/etc/samba \
+       BINDIR=$RPM_BUILD_ROOT%{prefix}/bin \
+       MANDIR=$RPM_BUILD_ROOTMANDIR_MACRO \
+       CODEPAGEDIR=$RPM_BUILD_ROOT/etc/codepages \
+       SWATDIR=$RPM_BUILD_ROOT/usr/share/swat \
+       SAMBABOOK=$RPM_BUILD_ROOT/usr/share/swat/using_samba \
+       installman installcp installswat
+cd ..
 
 # 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/etc/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
+for i in source/codepages/codepage_def.* source/codepages/*.TXT
 do
-install -m644 source/codepages/CP$i.TXT $RPM_BUILD_ROOT/etc/codepages/src
+install -m644 $i $RPM_BUILD_ROOT/etc/codepages/src
 done
 
-# Install the nsswitch library extension file
+# 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; )
@@ -230,80 +242,92 @@ done
 for i in swat/include/*.html
 do
 install -m644 $i $RPM_BUILD_ROOT%{prefix}/share/swat/include
-done# 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
-done
-for i in docs/htmldocs/using_samba/gifs/*.gif
-do
-install -m644 $i $RPM_BUILD_ROOT%{prefix/share/swat/using_samba/gifs
 done
 
 # Install the miscellany
 install -m644 swat/README $RPM_BUILD_ROOT%{prefix}/share/swat
-install -m644 docs/manpages/smb.conf.5 $RPM_BUILD_ROOT%{prefix}/man/man5
-install -m644 docs/manpages/lmhosts.5 $RPM_BUILD_ROOT%{prefix}/man/man5
-install -m644 docs/manpages/smbpasswd.5 $RPM_BUILD_ROOT%{prefix}/man/man5
-install -m644 docs/manpages/samba.7 $RPM_BUILD_ROOT%{prefix}/man/man7
-install -m644 docs/manpages/smbd.8 $RPM_BUILD_ROOT%{prefix}/man/man8
-install -m644 docs/manpages/nmbd.8 $RPM_BUILD_ROOT%{prefix}/man/man8
-install -m644 docs/manpages/swat.8 $RPM_BUILD_ROOT%{prefix}/man/man8
-install -m644 docs/manpages/smbmnt.8 $RPM_BUILD_ROOT%{prefix}/man/man8
-install -m644 docs/manpages/smbmount.8 $RPM_BUILD_ROOT%{prefix}/man/man8
-install -m644 docs/manpages/smbpasswd.8 $RPM_BUILD_ROOT%{prefix}/man/man8
-install -m644 docs/manpages/smbspool.8 $RPM_BUILD_ROOT%{prefix}/man/man8
-install -m644 packaging/RedHat/smb.conf $RPM_BUILD_ROOT/etc/smb.conf
-install -m644 packaging/RedHat/smbusers $RPM_BUILD_ROOT/etc/smbusers
 install -m755 packaging/RedHat/smbprint $RPM_BUILD_ROOT%{prefix}/bin
 install -m755 packaging/RedHat/findsmb $RPM_BUILD_ROOT%{prefix}/bin
-install -m755 packaging/RedHat/smbadduser $RPM_BUILD_ROOT%{prefix}/bin
 install -m755 packaging/RedHat/smb.init $RPM_BUILD_ROOT/etc/rc.d/init.d/smb
 install -m755 packaging/RedHat/smb.init $RPM_BUILD_ROOT%{prefix}/sbin/samba
-install -m644 packaging/RedHat/samba.pamd $RPM_BUILD_ROOT/etc/pam.d/samba
 install -m644 packaging/RedHat/samba.log $RPM_BUILD_ROOT/etc/logrotate.d/samba
-echo 127.0.0.1 localhost > $RPM_BUILD_ROOT/etc/lmhosts
+install -m644 packaging/RedHat/smb.conf $RPM_BUILD_ROOT/etc/samba/smb.conf
+install -m644 packaging/RedHat/smbusers $RPM_BUILD_ROOT/etc/samba/smbusers
+install -m644 packaging/RedHat/samba.pamd $RPM_BUILD_ROOT/etc/pam.d/samba
+install -m644 packaging/RedHat/samba.pamd.stack $RPM_BUILD_ROOT/etc/samba/samba.stack
+install -m644 packaging/RedHat/samba.xinetd $RPM_BUILD_ROOT/etc/samba/samba.xinetd
+echo 127.0.0.1 localhost > $RPM_BUILD_ROOT/etc/samba/lmhosts
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %post
 /sbin/chkconfig --add smb
+/sbin/chkconfig smb off
 
-# Build codepage load files
-for i in 437 737 850 852 861 866 932 936 949 950 1251
-do
-%{prefix}/bin/make_smbcodepage c $i /etc/codepages/src/codepage_def.$i /etc/codepages/codepage.$i
-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 /etc/codepages/src/CP$i.TXT /etc/codepages/unicode_map.$i
-done
+echo "Looking for old /etc/smb.conf..."
+if [ -f /etc/smb.conf ]; then
+       echo "Moving old /etc/smb.conf to /etc/samba/smb.conf"
+       mv /etc/smb.conf /etc/samba/smb.conf
+fi
+
+echo "Looking for old /etc/smbusers..."
+if [ -f /etc/smbusers ]; then
+       echo "Moving old /etc/smbusers to /etc/samba/smbusers"
+       mv /etc/smbusers /etc/samba/smbusers
+fi
 
-# Add swat entry to /etc/services if not already there
+echo "Looking for old /etc/lmhosts..."
+if [ -f /etc/lmhosts ]; then
+       echo "Moving old /etc/lmhosts to /etc/samba/lmhosts"
+       mv /etc/lmhosts /etc/samba/lmhosts
+fi
+
+echo "Looking for old /etc/MACHINE.SID..."
+if [ -f /etc/MACHINE.SID ]; then
+       echo "Moving old /etc/MACHINE.SID to /etc/samba/MACHINE.SID"
+       mv /etc/MACHINE.SID /etc/samba/MACHINE.SID
+fi
+
+echo "Looking for old /etc/smbpasswd..."
+if [ -f /etc/smbpasswd ]; then
+       echo "Moving old /etc/smbpasswd to /etc/samba/smbpasswd"
+       mv /etc/smbpasswd /etc/samba/smbpasswd
+fi
+
+# 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
 fi
 
-# Add swat entry to /etc/inetd.conf if needed
-if !( grep ^[:space:]*swat /etc/inetd.conf > /dev/null ) then
-       echo 'swat      stream  tcp     nowait.400      root    %{prefix}/sbin/swat swat' >> /etc/inetd.conf
-killall -1 inetd || :
+# Add swat entry to /etc/inetd.conf if needed.
+if [ -f /etc/inetd.conf ]; then
+       if !( grep ^[:space:]*swat /etc/inetd.conf > /dev/null ) then
+               echo 'swat      stream  tcp     nowait.400      root    %{prefix}/sbin/swat swat' >> /etc/inetd.conf
+       killall -1 inetd || :
+       fi
+fi
+
+# Add swat entry to xinetd.d if needed.
+if [ -d $RPM_BUILD_ROOT/etc/xinetd.d ]; then
+    mv /etc/samba/samba.xinetd /etc/xinetd.d/swat
+else
+       rm -f /etc/samba/samba.xinetd
+fi
+
+# Install the correct version of the samba pam file, depending on pam version.
+if [ -f /lib/security/pam_stack.so ]; then
+       echo "Installing stack version of /etc/pam.d/samba..."
+       mv /etc/samba/samba.stack /etc/pam.d/samba
+else
+       echo "Installing non-stack version of /etc/pam.d/samba..."
+       rm -f /etc/samba/samba.stack
 fi
 
 %preun
 if [ $1 = 0 ] ; then
     /sbin/chkconfig --del smb
 
-    for n in /etc/codepages/*; do
-       if [ $n != /etc/codepages/src ]; then
-           rm -rf $n
-       fi
-    done
     # We want to remove the browse.dat and wins.dat files so they can not interfer with a new version of samba!
     if [ -e /var/lock/samba/browse.dat ]; then
            rm -f /var/lock/samba/browse.dat
@@ -311,6 +335,28 @@ if [ $1 = 0 ] ; then
     if [ -e /var/lock/samba/wins.dat ]; then
            rm -f /var/lock/samba/wins.dat
     fi
+
+       # Remove the transient tdb files.
+       if [ -e /var/lock/samba/brlock.tdb ]; then
+               rm -f /var/lock/samba/brlock.tdb
+       fi
+
+       if [ -e /var/lock/samba/unexpected.tdb ]; then
+               rm -f /var/lock/samba/unexpected.tdb
+       fi
+
+       if [ -e /var/lock/samba/connections.tdb ]; then
+               rm -f /var/lock/samba/connections.tdb
+       fi
+
+       if [ -e /var/lock/samba/locking.tdb ]; then
+               rm -f /var/lock/samba/locking.tdb
+       fi
+
+       if [ -e /var/lock/samba/messages.tdb ]; then
+               rm -f /var/lock/samba/messages.tdb
+       fi
+
 fi
 
 %postun
@@ -322,24 +368,25 @@ if [ $1 = 0 ] ; then
     if [ -e /var/log/samba ]; then
       rm -rf /var/log/samba
     fi
-    if [ -e /var/lock/samba ]; then
-      rm -rf /var/lock/samba
-    fi
 
     # Remove swat entries from /etc/inetd.conf and /etc/services
     cd /etc
     tmpfile=/etc/tmp.$$
-    sed -e '/^[:space:]*swat.*$/d' /etc/inetd.conf > $tmpfile
-    mv $tmpfile inetd.conf
+       if [ -f /etc/inetd.conf ]; then
+      # preserve inetd.conf permissions.
+      cp -p /etc/inetd.conf $tmpfile
+      sed -e '/^[:space:]*swat.*$/d' /etc/inetd.conf > $tmpfile
+      mv $tmpfile inetd.conf
+       fi
+    # preserve services permissions.
+    cp -p /etc/services $tmpfile
     sed -e '/^[:space:]*swat.*$/d' /etc/services > $tmpfile
-    mv $tmpfile services
-fi
+    mv $tmpfile /etc/services
 
-if [ -f /sbin/mount.smb ]; then
-       rm -f /sbin/mount.smb
-fi
-if [ -f /sbin/mount.smbfs ]; then
-       rm -f /sbin/mount.smbfs
+       # Remove swat entry from /etc/xinetd.d
+       if [ -f /etc/xinetd.d/swat ]; then
+               rm -r /etc/xinetd.d/swat
+       fi
 fi
 
 %triggerpostun -- samba < samba-2.0.0
@@ -347,7 +394,6 @@ if [ $0 != 0 ]; then
     /sbin/chkconfig --add smb
 fi
 
-
 %files
 %doc README COPYING Manifest Read-Manifest-Now
 %doc WHATSNEW.txt Roadmap
@@ -362,8 +408,6 @@ fi
 %attr(-,root,root) %{prefix}/sbin/smbumount
 %attr(-,root,root) /sbin/mount.smbfs
 %attr(-,root,root) /sbin/mount.smb
-%attr(0750,root,root) %{prefix}/sbin/samba
-%attr(-,root,root) %{prefix}/bin/addtosmbpass
 %attr(-,root,root) %{prefix}/bin/mksmbpasswd.sh
 %attr(-,root,root) %{prefix}/bin/smbclient
 %attr(-,root,root) %{prefix}/bin/smbspool
@@ -379,43 +423,27 @@ fi
 %attr(-,root,root) %{prefix}/bin/smbpasswd
 %attr(-,root,root) %{prefix}/bin/smbtar
 %attr(-,root,root) %{prefix}/bin/smbprint
-%attr(-,root,root) %{prefix}/bin/smbadduser
+%attr(-,root,root) %{prefix}/bin/smbcontrol
+%attr(-,root,root) %{prefix}/bin/smbcacls
 %attr(755,root,root) /lib/libnss_wins.s*
 %attr(-,root,root) %{prefix}/share/swat/help/*
 %attr(-,root,root) %{prefix}/share/swat/images/*
 %attr(-,root,root) %{prefix}/share/swat/include/header.html
 %attr(-,root,root) %{prefix}/share/swat/include/footer.html
 %attr(-,root,root) %{prefix}/share/swat/using_samba/*
-%attr(-,root,root) %config(noreplace) /etc/lmhosts
-%attr(-,root,root) %config(noreplace) /etc/smb.conf
-%attr(-,root,root) %config(noreplace) /etc/smbusers
+%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/samba/samba.stack
+%attr(-,root,root) /etc/samba/samba.xinetd
 %attr(-,root,root) /etc/rc.d/init.d/smb
 %attr(-,root,root) /etc/logrotate.d/samba
-%attr(-,root,root) /etc/pam.d/samba
-%attr(-,root,root) /etc/codepages/src/codepage_def.*
-%attr(-,root,root) %{prefix}/man/man1/make_smbcodepage.1
-%attr(-,root,root) %{prefix}/man/man1/make_unicodemap.1
-%attr(-,root,root) %{prefix}/man/man1/nmblookup.1
-%attr(-,root,root) %{prefix}/man/man1/smbclient.1
-%attr(-,root,root) %{prefix}/man/man1/smbrun.1
-%attr(-,root,root) %{prefix}/man/man1/smbstatus.1
-%attr(-,root,root) %{prefix}/man/man1/smbtar.1
-%attr(-,root,root) %{prefix}/man/man1/testparm.1
-%attr(-,root,root) %{prefix}/man/man1/testprns.1
-%attr(-,root,root) %{prefix}/man/man5/lmhosts.5
-%attr(-,root,root) %{prefix}/man/man5/smb.conf.5
-%attr(-,root,root) %{prefix}/man/man5/smbpasswd.5
-%attr(-,root,root) %{prefix}/man/man7/samba.7
-%attr(-,root,root) %{prefix}/man/man8/nmbd.8
-%attr(-,root,root) %{prefix}/man/man8/smbd.8
-%attr(-,root,root) %{prefix}/man/man8/smbmnt.8
-%attr(-,root,root) %{prefix}/man/man8/smbmount.8
-%attr(-,root,root) %{prefix}/man/man8/smbpasswd.8
-%attr(-,root,root) %{prefix}/man/man8/smbspool.8
-%attr(-,root,root) %{prefix}/man/man8/swat.8
-%attr(-,root,nobody) %dir /home/samba
-%attr(-,root,root) %dir /etc/codepages
-%attr(-,root,root) %dir /etc/codepages/src
-%attr(-,root,root) %dir /var/lock/samba
+%attr(-,root,root) %config(noreplace) /etc/pam.d/samba
+%attr(-,root,root) MANDIR_MACRO/man1/*
+%attr(-,root,root) MANDIR_MACRO/man5/*
+%attr(-,root,root) MANDIR_MACRO/man7/*
+%attr(-,root,root) MANDIR_MACRO/man8/*
+%attr(-,root,root) %dir /etc/codepages/*
+%attr(755,root,root) %dir /var/lock/samba
 %attr(-,root,root) %dir /var/log/samba
 %attr(1777,root,root) %dir /var/spool/samba