#!/bin/sh
# Build samba for AlphaSlack.
CWD=`pwd`
TMP=/tmp
PKG=$TMP/package-samba
VERSION=3.0.10
ARCH=alpha
BUILD=1
TARGET=$ARCH-alphaslack-linux

mkdir -p $PKG
( cd $TMP
rm -rf samba-$VERSION
tar xjf $CWD/samba-$VERSION.tar.bz2
cd samba-$VERSION
chown -R root.root .
find . -perm 775 -exec chmod 755 {} \;
find . -perm 664 -exec chmod 644 {} \;
cd source
zcat $CWD/samba.configure.diff.gz | patch -p1
CFLAGS="-O2" ./configure \
  --enable-cups \
  --with-fhs \
  --with-acl-support=no \
  --with-automount \
  --prefix=/usr \
  --localstatedir=/var \
  --bindir=/usr/bin \
  --sbindir=/usr/sbin \
  --with-lockdir=/var/cache/samba \
  --sysconfdir=/etc \
  --with-configdir=/etc/samba \
  --with-privatedir=/etc/samba/private \
  --with-swatdir=/usr/share/swat \
  --with-smbmount \
  --with-quotas \
  --with-syslog \
  --with-utmp \
  --with-libsmbclient \
  $TARGET
make
mkdir -p \
 $PKG/usr/doc/samba-$VERSION/swat \
 $PKG/var/spool/samba \
 $PKG/var/log/samba \
 $PKG/etc/samba/private \
 $PKG/var/cache/samba
chmod 700 $PKG/etc/samba/private
chmod 1777 $PKG/var/spool/samba
make install DESTDIR=$PKG
# I almost think this is cruft.  Almost.
mkdir -p $PKG/sbin
( cd $PKG/sbin
  rm -f mount.smbfs
  ln -sf /usr/bin/smbmount mount.smbfs
  chown -R root.bin .
)
# Make sure libsmbclient gets installed:
if [ -r bin/libsmbclient.so ]; then
  cp -a bin/libsmbclient.so $PKG/usr/lib/libsmbclient.so.0.0
  chown root.root $PKG/usr/lib/libsmbclient.so.0.0
  chmod 755 $PKG/usr/lib/libsmbclient.so.0.0
  ( cd $PKG/usr/lib
    rm -f libsmbclient.so.0 libsmbclient.so libsmbclient.a
    ln -sf libsmbclient.so.0.0 libsmbclient.so.0
    ln -sf libsmbclient.so.0.0 libsmbclient.so )
  mkdir -p $PKG/usr/include
  cp -a include/libsmbclient.h $PKG/usr/include/libsmbclient.h
  chown root.root $PKG/usr/include/libsmbclient.h
  chmod 644 $PKG/usr/include/libsmbclient.h
fi
cat $CWD/smb.conf.default > $PKG/etc/samba/smb.conf-sample
if [ ! -r $PKG/usr/bin/smbget ]; then
  rm -f $PKG/usr/share/man/man1/smbget.1
  rm -f $PKG/usr/share/swat/help/smbget.1.html
fi
# We'll add rc.samba to the init directory, but chmod 644 so that it doesn't
# start by default:
mkdir -p $PKG/etc/rc.d
cat $CWD/rc.samba > $PKG/etc/rc.d/rc.samba.new
chmod 644 $PKG/etc/rc.d/rc.samba.new
mv $PKG/usr/share/man $PKG/usr
gzip -9 $PKG/usr/man/man?/*.?
chown -R root.bin $PKG/usr/bin $PKG/usr/sbin
( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
cd ..
cp -a COPYING Manifest README Read-Manifest-Now Roadmap WHATSNEW.txt docs examples \
  $PKG/usr/doc/samba-$VERSION
# These are installed elsewhere:
rm -rf $PKG/usr/doc/samba-$VERSION/docs/htmldocs \
       $PKG/usr/doc/samba-$VERSION/docs/manpages
( cd $PKG/usr/doc/samba-$VERSION/docs
  ln -sf /usr/share/swat/using_samba .
  ln -sf /usr/share/swat/help htmldocs
)
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cat << EOF

*** Be sure the package contains:

drwx------   2 root     root         1024 Mar 12 13:21 /etc/samba/private
drwxr-xr-x   2 root     root         4096 May  3 15:46 /var/cache/samba/
drwxr-xr-x    2 root     root          48 Aug 29 13:06 /var/log/samba/
drwxrwxrwt   2 root     root         1024 Mar 12 13:21 /var/spool/samba/

EOF
cd $PKG
makepkg -l y -c n $TMP/samba-$VERSION-$ARCH-$BUILD.tgz
) 2>&1 | tee $TMP/samba.build.log
