#!/bin/sh
# Set initial variables:
CWD=`pwd`
if [ "$TMP" = "" ]; then
  TMP=/tmp
fi
PKG=$TMP/package-util
SRC=/devel/manpagesrc
INFO=$PKG/usr/info
TEX=/devel/texinfo-docs

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

# Explode the package framework:
cd $PKG
explodepkg $CWD/_util.tar.gz

# Function to handle manpage source:
man2gz () { # $1 is source page name, $2 is target name for preformatted
            # output (full path && name) and $3 is the same, but for the
            # source.
  mkdir -p `dirname $2`
  groff -Tascii -mandoc $1 | gzip -9c > $2
  if [ ! "$3" = "" ]; then
    mkdir -p `dirname $3`
    cat $1 > $3 
  fi 
}

echo "+=================+"
echo "| net-tools-1.421 |"
echo "+=================+"
cd $TMP
tar xzvf $CWD/net-tools-1.421.tar.gz
cd net-tools
zcat $CWD/net-tools-1.421.diff.gz | patch -p1
make
strip hostname
cat hostname > $PKG/bin/hostname
cd man/en_US.88591
for page in hostname.1 dnsdomainname.1 nisdomainname.1 ypdomainname.1 \
domainname.1 ; do
  cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
done


echo "+================+"
echo "| setserial-2.12 |"
echo "+================+"
cd $TMP
tar xzvf $CWD/setserial-2.12.tar.gz
cd setserial-2.12
make
strip setserial
cat setserial > $PKG/sbin/setserial
cat rc.serial > $PKG/etc/rc.d/rc.serial
cat setserial.8 | gzip -9c > $PKG/usr/man/man8/setserial.8.gz

echo "+==================+"
echo "| util-linux-2.7.1 |"
echo "+==================+"
cd $TMP
tar xzvf $CWD/util-linux-2.7.1.tar.gz
cd util-linux-2.7.1
( cd bsd ; zcat $CWD/pathnames.h.diff.gz | patch )
( cd misc-utils ; zcat $CWD/reset.diff.gz | patch )
zcat $CWD/MCONFIG.diff.gz | patch
make
cat sys-utils/arch > $PKG/bin/arch
cat sys-utils/dmesg > $PKG/bin/dmesg
cat misc-utils/getoptprog > $PKG/bin/getopt
cat misc-utils/mcookie > $PKG/usr/bin/mcookie
#cat misc-utils/hostname > $PKG/bin/hostname
cat misc-utils/kill > $PKG/bin/kill
#cat login-utils/login > $PKG/bin/login
cat text-utils/more > $PKG/bin/more
#cat mount/mount > $PKG/bin/mount
#cat mount/umount > $PKG/bin/umount
#cat mount/losetup > $PKG/sbin/losetup
#cat sys-utils/setserial > $PKG/bin/setserial
cat misc-utils/setterm > $PKG/bin/setterm
cat sys-utils/sln > $PKG/bin/sln
#cat sys-utils/sync > $PKG/bin/sync
cat login-utils/agetty > $PKG/sbin/agetty
#cat login-utils/chfn > $PKG/usr/bin/chfn
#cat bdflush > $PKG/sbin/bdflush
#cat sys-utils/clock > $PKG/sbin/clock
cat sys-utils/hwclock > $PKG/sbin/hwclock
cat disk-utils/fdisk > $PKG/sbin/fdisk
cat disk-utils/sfdisk > $PKG/usr/sbin/sfdisk
#cat fsck > $PKG/sbin/fsck
cat disk-utils/fsck.minix > $PKG/sbin/fsck.minix
cat sys-utils/readprofile > $PKG/usr/bin/readprofile
cat sys-utils/kbdrate > $PKG/sbin/kbdrate
cat disk-utils/mkfs.minix > $PKG/sbin/mkfs.minix
cat disk-utils/mkfs > $PKG/sbin/mkfs
cat disk-utils/mkswap > $PKG/sbin/mkswap
cat sys-utils/rdev > $PKG/sbin/rdev
#cat mount/swapon > $PKG/sbin/swapon
cat games/banner > $PKG/usr/bin/banner
cat misc-utils/cal > $PKG/usr/bin/cal
#cat login-utils/chsh > $PKG/usr/bin/chsh
#cat clear > $PKG/usr/bin/clear
cat text-utils/col > $PKG/usr/bin/col
cat text-utils/colcrt > $PKG/usr/bin/colcrt
cat text-utils/colrm > $PKG/usr/bin/colrm
cat text-utils/column > $PKG/usr/bin/column
cat misc-utils/ddate > $PKG/usr/bin/ddate
cat disk-utils/fdformat > $PKG/usr/bin/fdformat
cat text-utils/hexdump > $PKG/usr/bin/hexdump
cat misc-utils/hostid > $PKG/usr/bin/hostid
cat sys-utils/ipcrm > $PKG/usr/bin/ipcrm
cat sys-utils/cytune > $PKG/usr/bin/cytune
cat sys-utils/ipcs > $PKG/usr/bin/ipcs
cat login-utils/last > $PKG/usr/bin/last
cat misc-utils/logger > $PKG/usr/bin/logger
cat misc-utils/look > $PKG/usr/bin/look
cat login-utils/mesg > $PKG/usr/bin/mesg
cat misc-utils/namei > $PKG/usr/bin/namei
#cat login-utils/newgrp > $PKG/usr/bin/newgrp
#cat login-utils/passwd > $PKG/usr/bin/passwd
#cat login-utils/vipw > $PKG/usr/sbin/vipw
cat sys-utils/renice > $PKG/usr/bin/renice
cat misc-utils/reset.sh > $PKG/usr/bin/reset
cat text-utils/rev > $PKG/usr/bin/rev
cat misc-utils/script > $PKG/usr/bin/script
cat disk-utils/setfdprm > $PKG/usr/bin/setfdprm
cat sys-utils/setsid > $PKG/usr/bin/setsid
cat text-utils/strings > $PKG/usr/bin/strings
cat misc-utils/tsort > $PKG/usr/bin/tsort
cat sys-utils/tunelp > $PKG/usr/bin/tunelp
cat text-utils/ul > $PKG/usr/bin/ul
cat login-utils/wall > $PKG/usr/bin/wall
cat misc-utils/whereis > $PKG/usr/bin/whereis
cat misc-utils/write > $PKG/usr/bin/write
cat disk-utils/cfdisk > $PKG/usr/sbin/cfdisk
cat sys-utils/chroot > $PKG/usr/sbin/chroot
cat sys-utils/ctrlaltdel > $PKG/usr/sbin/ctrlaltdel
mkdir -p $INFO
cat sys-utils/ipc.info | gzip -9c > $INFO/ipc.info.gz
#cp sys-utils/ipc.texi $TEX/ipc.texi
gzip -9c misc-utils/getoptprog.1 > $PKG/usr/man/man1/getopt.1.gz
echo '.so man1/getopt.1' | gzip -9c > $PKG/usr/man/man1/getoptprog.1.gz
for file in sys-utils/arch.1 misc-utils/kill.1 \
text-utils/more.1 misc-utils/setterm.1 \
text-utils/col.1 text-utils/colcrt.1 \
text-utils/colrm.1 text-utils/column.1 text-utils/hexdump.1 \
login-utils/last.1 misc-utils/logger.1 misc-utils/look.1 \
login-utils/mesg.1 \
misc-utils/reset.1 text-utils/rev.1 misc-utils/script.1 text-utils/strings.1 \
misc-utils/tsort.1 text-utils/ul.1 login-utils/wall.1 misc-utils/whereis.1 \
misc-utils/write.1 misc-utils/namei.1 misc-utils/hostid.1 misc-utils/ddate.1 \
sys-utils/readprofile.1 \
misc-utils/mcookie.1 misc-utils/cal.1 ; do
  gzip -9c $file > $PKG/usr/man/man1/`basename $file`.gz
done
gzip -9c games/banner.6 > $PKG/usr/man/man6/banner.6.gz
for file in sys-utils/dmesg.8 mount/mount.8 \
mount/umount.8 login-utils/agetty.8 \
sys-utils/hwclock.8 sys-utils/rdev.8 \
sys-utils/cytune.8 disk-utils/fdisk.8 disk-utils/fsck.minix.8 \
sys-utils/kbdrate.8 disk-utils/mkfs.minix.8 disk-utils/mkswap.8 \
mount/swapon.8 disk-utils/mkfs.8 disk-utils/fdformat.8 \
sys-utils/ipcrm.8 sys-utils/ipcs.8 sys-utils/renice.8 disk-utils/setfdprm.8 \
sys-utils/setsid.8 sys-utils/tunelp.8 sys-utils/chroot.8 \
sys-utils/ctrlaltdel.8 disk-utils/cfdisk.8 disk-utils/sfdisk.8 \
sys-utils/ramsize.8 sys-utils/swapdev.8 mount/swapoff.8 sys-utils/vidmode.8 \
sys-utils/rootflags.8 ; do
  gzip -9c $file > $PKG/usr/man/man8/`basename $file`.gz
done

echo "+=============+"
echo "| updated-1.2 |"
echo "+=============+"
cd $TMP
tar xzvf $CWD/updated-1.2.tar.gz
cd update-1.2
make
strip update
cat update > $PKG/sbin/update
cat update.8 | gzip -9c > $PKG/usr/man/man8/update.8.gz

echo "+===========+"
echo "| clock-1.6 |"
echo "+===========+"
cd $TMP
tar xzvf $CWD/clock-1.6.tar.gz
cd clock-1.6
make
cat clock > $PKG/sbin/clock
cat clock.8 | gzip -9c > $PKG/usr/man/man8/clock.8.gz

echo "+============+"
echo "| mount-2.7f |"
echo "+============+"
cd $TMP
tar xzvf $CWD/mount-2.7f.tar.gz
cd mount-2.7f
make
strip mount umount losetup swapon
cat mount > $PKG/bin/mount
cat umount > $PKG/bin/umount
cat losetup > $PKG/sbin/losetup
cat swapon > $PKG/sbin/swapon
for page in fstab.5 nfs.5 ; do
  cat $page | gzip -9c > $PKG/usr/man/man5/$page.gz
done
for page in losetup.8 mount.8 swapoff.8 swapon.8 umount.8 ; do
  cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
done

echo "+=============+"
echo "| jaztool-1.0 |"
echo "+=============+"
cd $TMP
tar xzvf $CWD/jaztool-1.0.tar.gz
cd jaztool-1.0
make
strip jaztool
chown root.bin jaztool
cp -a jaztool $PKG/sbin
mkdir -p $PKG/usr/doc/jaztool-1.0
cat README > $PKG/usr/doc/jaztool-1.0/README

echo "+=============+"
echo "| ziptool-1.0 |"
echo "+=============+"
cd $TMP
tar xzvf $CWD/ziptool-1.0.tar.gz
cd ziptool-1.0
make
strip ziptool
chown root.bin ziptool
cp -a ziptool $PKG/sbin
mkdir -p $PKG/usr/doc/ziptool-1.0
cat ziptool.txt > $PKG/usr/doc/ziptool-1.0/ziptool.txt

strip $PKG/bin/* $PKG/usr/bin/* $PKG/usr/sbin/*

# Build the package:
cd $PKG
tar czvf $TMP/util.tgz .

# Clean up the extra stuff:
if [ "$1" = "--cleanup" ]; then
  rm -rf $TMP/util-linux-2.7.1
  rm -rf $TMP/update-1.2
  rm -rf $TMP/clock-1.6
  rm -rf $TMP/jaztool-1.0
  rm -rf $TMP/mount-2.7f
  rm -rf $PKG
fi