#!/bin/sh
CWD=`pwd`
TMP=/tmp
PKG=$TMP/package-yptools
VERSION=2.10
ARCH=alpha
BUILD=2
YPTOOLS=$VERSION
YPBINDMT=1.19.1
YPSERV=2.19
TARGET=$ARCH-alphaslack-linux

rm -rf $PKG
mkdir -p $PKG
echo "+===================+"
echo "| yp-tools-$YPTOOLS |"
echo "+===================+"
( cd $TMP
mkdir -p $PKG/etc
# Add etc/nsswitch.conf-nis as a full NIS+ example config file:
zcat $CWD/nsswitch.conf-nis.gz > $PKG/etc/nsswitch.conf-nis.new
rm -rf yp-tools-$YPTOOLS
tar xjf $CWD/yp-tools-$YPTOOLS.tar.bz2
cd yp-tools-$YPTOOLS
./configure \
 --prefix=/usr \
 --mandir=/usr/man \
 --disable-domainname \
 $TARGET
make || exit
make DESTDIR=$PKG install
( cd $PKG/usr/bin
 rm -rf ypchfn ypchsh
 ln -sf yppasswd ypchfn
 ln -sf yppasswd ypchsh )
mv $PKG/var/yp/nicknames $PKG/var/yp/nicknames.new
mkdir -p $PKG/usr/doc/yp-tools-$YPTOOLS
cp -a ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO $PKG/usr/doc/yp-tools-$YPTOOLS
chown -R root:root $PKG/usr/doc/yp-tools-$YPTOOLS
chmod 644 $PKG/usr/doc/yp-tools-$YPTOOLS/*

echo "+=====================+"
echo "| ypbind-mt-$YPBINDMT |"
echo "+=====================+"
cd $TMP
rm -rf ypbind-mt-$YPBINDMT
tar xjf $CWD/ypbind-mt-$YPBINDMT.tar.bz2
cd ypbind-mt-$YPBINDMT
./configure \
 --prefix=/usr \
 $TARGET
# Hard to believe how sloppy these tarballs are.  This is why I got complaints
# that YP didn't work but it was "fixed with a simple recompile."
make clean
./configure \
 --prefix=/usr \
 --mandir=/usr/man \
 $TARGET
make || exit
make DESTDIR=$PKG install
mkdir -p $PKG/etc
cat etc/yp.conf > $PKG/etc/yp.conf.new
mkdir -p $PKG/usr/doc/ypbind-mt-$YPBINDMT
cp -a ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO $PKG/usr/doc/ypbind-mt-$YPBINDMT
chown root.root $PKG/usr/doc/ypbind-mt-$YPBINDMT/*
chmod 644 $PKG/usr/doc/ypbind-mt-$YPBINDMT/*

echo "+============+"
echo "| ypserv-$YPSERV |"
echo "+============+"
cd $TMP
rm -rf ypserv-$YPSERV
tar xjf $CWD/ypserv-$YPSERV.tar.bz2
cd ypserv-$YPSERV
./configure \
 --prefix=/usr \
 --mandir=/usr/man \
 --enable-fqdn \
 --enable-yppasswd \
 $TARGET
make || exit
make DESTDIR=$PKG install
mv $PKG/var/yp/Makefile $PKG/var/yp/Makefile.new
cat etc/securenets > $PKG/var/yp/securenets.new
mkdir -p $PKG/etc/rc.d
echo "# This file is part of the YP server package -- see 'man netgroup'" > $PKG/etc/netgroup.new
cat etc/netgroup >> $PKG/etc/netgroup.new
mkdir -p $PKG/usr/doc/ypserv-$YPSERV
cp -a AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO $PKG/usr/doc/ypserv-$YPSERV
chmod 644 $PKG/usr/doc/ypserv-$YPSERV/*
chown root.root $PKG/usr/doc/ypserv-$YPSERV/*
zcat $CWD/rc.yp.gz > $PKG/etc/rc.d/rc.yp.new
chmod 755 $PKG/etc/rc.d/rc.yp.new
( cd $PKG/usr
 chown root:bin bin/* sbin/* )
gzip -9 $PKG/usr/man/man?/*
( 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
)
# install script and package description:
mkdir -p $PKG/install
cat << EOF > $PKG/install/doinst.sh
config() {
  NEW="\$1"
  OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`"
  # If there's no config file by that name, mv it over:
  if [ ! -r \$OLD ]; then
    mv \$NEW \$OLD
  elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then # toss the redundant copy
    rm \$NEW
  fi
  # Otherwise, we leave the .new copy for the admin to consider...
}

config etc/nsswitch.conf-nis.new
config etc/netgroup.new
config etc/yp.conf.new
config etc/rc.d/rc.yp.new
config var/yp/nicknames.new
config var/yp/Makefile.new
config var/yp/securenets.new
rm -f etc/nsswitch.conf.new etc/nsswitch.conf-nis.new etc/netgroup.new etc/yp.conf.new var/yp/nicknames.new var/yp/Makefile.new var/yp/securenets.new
EOF
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
makepkg -l y -c n $TMP/yptools-$VERSION-$ARCH-$BUILD.tgz
) 2>&1 | tee $TMP/yptools.build.log
