#!/bin/sh
CWD=`pwd`
TMP=/tmp
PKG=$TMP/package-nfs-utils
VERSION=1.1.3
VER=1.1.3
ARCH=alpha
BUILD=1
TARGET=$ARCH-alphaslack-linux

rm -rf $PKG
mkdir -p $PKG
# Explode the package framework:
cd $PKG
explodepkg $CWD/_nfs-utils.tar.gz
# Add startup script:
cat $CWD/rc.nfsd > $PKG/etc/rc.d/rc.nfsd.new
# Off by default, unless there's a previous version that's turned on:
chmod 644 $PKG/etc/rc.d/rc.nfsd.new
( cd $TMP
rm -rf nfs-utils-$VERSION
tar xzf $CWD/nfs-utils-$VERSION.tar.gz
cd nfs-utils-$VERSION
zcat $CWD/nfs-utils.lwrap.needs.lnsl.diff.gz | patch -p1 --verbose || exit 1
chown -R root.root .
find . -perm 664 -exec chmod 644 {} \;
find . -perm 600 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
find . -perm 400 -exec chmod 644 {} \;
find . -perm 440 -exec chmod 644 {} \;
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 511 -exec chmod 755 {} \;
find . -perm 711 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
./configure \
 --prefix=/usr \
 --mandir=/usr/man \
 --with-statedir=/var/lib/nfs \
 --enable-nfsv3 \
 --enable-nfsv4=no \
 --enable-gss=no \
 --enable-secure-statd \
 --program-prefix="" \
 --program-suffix="" \
 --build=$TARGET || exit 1
make -j2 || exit 1
make DESTDIR=$PKG install
mkdir -p $PKG/usr/doc/nfs-utils-$VERSION/statd
cp -a utils/statd/COPYING utils/statd/COPYRIGHT utils/statd/TODO $PKG/usr/doc/nfs-utils-$VERSION/statd
cp -a COPYING ChangeLog README linux-nfs $PKG/usr/doc/nfs-utils-$VERSION
find $PKG/usr/doc/nfs-utils-$VERSION -type d -exec chmod 755 {} \;
find $PKG/usr/doc/nfs-utils-$VERSION -type f -exec chmod 644 {} \;
chown -R root.root $PKG/usr/doc/nfs-utils-$VERSION
gzip -9 $PKG/usr/man/man?/*.?
rm -rf $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
)
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cat << EOF > $PKG/install/doinst.sh
#!/bin/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...
}
EOF

( cd $PKG/var/lib/nfs
 for config_file in etab.new rmtab.new state.new xtab.new ; do
  if [ -r ${config_file} ]; then
   echo "config var/lib/nfs/${config_file}" >> $PKG/install/doinst.sh
  fi
 done
)

# If these aren't moved into place, they're junk:
echo "rm -f var/lib/nfs/*.new" >> $PKG/install/doinst.sh
cat << EOF >> $PKG/install/doinst.sh
 if [ -x etc/rc.d/rc.nfsd ]; then
 chmod 755 etc/rc.d/rc.nfsd.new
 else
 chmod 644 etc/rc.d/rc.nfsd.new
 fi
 config etc/rc.d/rc.nfsd.new
 config etc/exports.new
EOF

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