#!/bin/sh
# Set initial variables:
CWD=`pwd`
if [ "$TMP" = "" ]; then
  TMP=/tmp
fi

VERSION=1.32
ARCH=i386
BUILD=2

PKG=$TMP/package-e2fsprogs

if [ ! -d $TMP ]; then
  mkdir -p $TMP # location to build the source
fi
if [ ! -d $PKG ]; then
  mkdir -p $PKG # place for the package to be built
fi

echo "+================+"
echo "| e2fsprogs-$VERSION |"
echo "+================+"
cd $TMP
tar xzvf $CWD/e2fsprogs-$VERSION.tar.gz
cd e2fsprogs-$VERSION
chown -R root.root .
CFLAGS=-O2 ./configure --prefix= \
            --enable-elf-shlibs \
            --enable-dynamic-e2fsck \
            i386-slackware-linux
make
make install DESTDIR=$PKG
make install-libs DESTDIR=$PKG
# Fix up package:
( cd $PKG
  find . -type f | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded
  strip bin/* sbin/*
  chown -R root.bin bin sbin
  rm -f man/man1/compile_et.1 man/man3/uuid_generate_random.3 man/man3/uuid_generate_time.3 man/man8/fsck.ext2.8 man/man8/fsck.ext3.8 man/man8/mkfs.ext2.8 man/man8/mkfs.ext3.8
  gzip -9 man/man?/*
  ( cd man/man3
    ln -sf uuid_generate.3.gz uuid_generate_random.3.gz
    ln -sf uuid_generate.3.gz uuid_generate_time.3.gz 
  )
  ( cd man/man8
    ln -sf e2fsck.8.gz fsck.ext2.8.gz
    ln -sf e2fsck.8.gz fsck.ext3.8.gz
    ln -sf mke2fs.8.gz mkfs.ext2.8.gz
    ln -sf mke2fs.8.gz mkfs.ext3.8.gz
  )
  mkdir usr
  mv bin include info man usr
  mkdir usr/lib
  mv lib/*.so lib/*.a usr/lib 
)
# Junk removal
rm -f $PKG/usr/bin/compile_et $PKG/usr/bin/mk_cmds $PKG/usr/man/man1/compile_et.1.gz $PKG/usr/man/man8/fsck.ext2.8 $PKG/usr/man/man8/fsck.ext3.8 $PKG/usr/man/man8/mkfs.ext2.8 $PKG/usr/man/man8/mkfs.ext3.8
rm -r $PKG/share
( cd $PKG/sbin
  rm -f mkfs.ext2 mkfs.ext3 fsck.ext2 fsck.ext3 e2label findfs
  ln -sf mke2fs mkfs.ext2
  ln -sf mke2fs mkfs.ext3
  ln -sf tune2fs e2label
  ln -sf tune2fs findfs
  cat << EOF > fsck.ext2
#!/bin/sh
exec /sbin/e2fsck -C 0 \$*
EOF
  cat << EOF > fsck.ext3
#!/bin/sh
exec /sbin/e2fsck -C 0 \$*
EOF
  chown root.bin fsck.ext2 fsck.ext3
  chmod 755 fsck.ext2 fsck.ext3
)
mkdir -p $PKG/usr/doc/e2fsprogs-$VERSION
cp -a \
  COPYING INSTALL INSTALL.elfbin README RELEASE-NOTES SHLIBS \
  $PKG/usr/doc/e2fsprogs-$VERSION
chmod 644 $PKG/usr/doc/e2fsprogs-$VERSION/*
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat << EOF > $PKG/install/doinst.sh
if [ -x /usr/bin/install-info ]; then
  install-info --info-dir=/usr/info /usr/info/libext2fs.info.gz 2> /dev/null
fi
EOF

# I wanted to include this, but Ted's license actually forbids it!
# ( cd misc 
#   make findsuper
#   cat findsuper > $PKG/sbin/findsuper
#   chown root.bin $PKG/sbin/findsuper
#   chmod 755 $PKG/sbin/findsuper )

# Build the package:
cd $PKG
makepkg -l y -c n $TMP/e2fsprogs-$VERSION-$ARCH-$BUILD.tgz

# Clean up the extra stuff:
if [ "$1" = "--cleanup" ]; then
  rm -rf $TMP/e2fsprogs-$VERSION
  rm -rf $PKG
fi