IGNOREPATH=/home:/dev:/boot:/root:/tmp:/usr/local:/mnt:/cdrom:/etc:/var:/usr/src
STRIPLIB=y
STRIPBIN=y

PROGNAME="random binaries"
VERSION=9.2.0
DESC="\
bin (standard utilities found in /bin and /usr/bin)                    \n\
                                                                       \n\
The "bin" package is a collection of utilities for handling various    \n\
kinds of archives, identifying file types, and processing data.        \n\
Several of these tools are used by system scripts, so this is a        \n\
required package.  The bin package contains these programs:            \n\
                                                                       \n\
bban bpe compress diskcopy ed eject file fiz fromdos lha mktemp        \n\
patch rpm2targz rpmoffset run-parts savelog shar splitvt sysvbanner    \n\
tempfile time todos tree unarj unshar uudecode uuencode volname        \n\
which xx zoo"

BUILD=1
MAINTAINER="Mark Post <mark.post@eds.com>"
SOURCE="various, including gnu.org"
PKGNAME=bin-$VERSION-s390-$BUILD
TAG=ADD

DUTILS=2.7
DOSFS=2.10
WHICH=2.16
EJECT=2.0.13
FILE=4.07

compile() {
   #
   # debianutils
   #
   cd $TMP
   tar -zxvf $CWD/debianutils_$DUTILS.tar.gz
   cd debianutils-$DUTILS
   chown -R root.root .
   ./configure --prefix=/usr
   make

   #
   # eject
   #
   cd $TMP
   tar -zxvf $CWD/eject-$EJECT.tar.gz
   cd eject-$EJECT
   chown -R root.root .
   CFLAGS= ./configure --prefix=/usr
   make

   #
   # fbset-2.1
   #
   cd $TMP
   tar -zxvf $CWD/fbset-2.1.tar.gz
   cd fbset-2.1
   chown -R root.root .
   make

   #
   # lha-1.14i
   #
   cd $TMP
   tar -zxvf $CWD/lha-114i.tar.gz
   cd lha-114i
   zcat $CWD/lha-114i-sec.patch.gz | patch -p1 --verbose
   zcat $CWD/lha-114i-symlink.patch.gz | patch -p1 --verbose
   chown -R root.root .
   make

   #
   # ed-0.2
   #
   cd $TMP
   tar -zxvf $CWD/ed-0.2.tar.gz
   cd ed-0.2
   chown -R root.root .
   zcat $CWD/ed-0.2.mkstemp.diff.gz | patch -p1 -E --backup --verbose
   CFLAGS=-O2 \
   ./configure --prefix=/usr \
               s390-slackware-linux
   make

   #
   # compress
   #
   cd $TMP
   tar -zxvf $CWD/compress.tar.gz
   cd compress
   chown -R root.root .
   zcat $CWD/compress.diff.gz | patch -p0 -E --backup --verbose
   make

   #
   # banners
   #
   cd $TMP
   tar -zxvf $CWD/banners.tar.gz
   cd banners
   chown -R root.root .
   make

   #
   # file
   #
   cd $TMP
   tar -zxvf $CWD/file-$FILE.tar.gz
   cd file-$FILE
   chown -R root.root .
   zcat $CWD/file.magic.diff.gz | patch -p1 -E --verbose
   zcat $CWD/file.makefile.in.diff.gz | patch -p1 -E --verbose
   zcat $CWD/file.quiet.diff.gz | patch -p1 -E --verbose
   zcat $CWD/file.zisofs.diff.gz | patch -p1 -E --verbose
   zcat $CWD/file.short.diff.gz | patch -p1 -E --verbose
   zcat $CWD/file.rzip.magic.gz >> magic/Magdir/debian-additions
   ./configure --prefix=/usr \
               --sysconfdir=/etc \
               --datadir=/etc \
               --enable-fsect-man5 \
               --enable-shared=no \
               --build=s390-slackware-linux \
               --host=s390-slackware-linux \
               --target=s390-slackware-linux
   make

   #
   # dosfstools
   #
   cd $TMP
   tar -zxvf $CWD/dosfstools-$DOSFS.tar.gz
   cd dosfstools-$DOSFS
   chown -R root.root .
   make

   #
   # patch-2.5.4
   #
   cd $TMP
   tar -zxvf $CWD/patch-2.5.4.tar.gz
   cd patch-2.5.4
   chown -R root.root .
   cp -vp /usr/share/libtool/config.* ./
   ./configure --prefix=/usr \
               s390-slackware-linux
   make CFLAGS="-O2 -D_XOPEN_SOURCE=500"

   #
   # rpm2targz
   #
   cd $TMP
   cc -o rpmoffset $CWD/rpmoffset.c

   #
   # run-parts
   #
   # Nothing to do to compile this.

   #
   # sharutils-4.2.1
   #
   cd $TMP
   tar -zxvf $CWD/sharutils-4.2.1.tar.gz
   cd sharutils-4.2.1
   chown -R root.root .
   # For now, NLS seems to cause build errors on this one...
   CFLAGS=-O2 \
   ./configure --prefix=/usr \
               --disable-nls \
               s390-slackware-linux
   make

   #
   # splitvt-1.6.5
   #
   cd $TMP
   tar -zxvf $CWD/splitvt-1.6.5.tar.gz
   cd splitvt-1.6.5
   zcat $CWD/splitvt.devpts.diff.gz | patch -p1 --verbose
   chown -R root.root .
   ./configure
   make

   #
   # time-1.7
   #
   cd $TMP
   tar -zxvf $CWD/time-1.7.tar.gz
   cd time-1.7
   chown -R root.root .
   ./configure --prefix=/usr \
               s390-slackware-linux
   make CFLAGS=-O2

   #
   # todos/fromdos
   #
   cd $TMP
   tar -zxvf $CWD/todos.tar.gz
   cd todos
   chown -R root.root .
   make

   #
   # tree-1.4b3
   #
   cd $TMP
   tar -zxvf $CWD/tree-1.4b3.tar.gz
   cd tree-1.4
   chown -R root.root .
   make clean
   make

   #
   # unarj230
   #
   cd $TMP
   tar -zxvf $CWD/unarj230.tar.gz
   cd unarj230
   chown -R root.root .
   zcat $CWD/unarj230.diff.gz | patch -p0 -E --verbose --backup
   make

   #
   # which
   #
   cd $TMP
   tar -zxvf $CWD/which-$WHICH.tar.gz
   cd which-$WHICH
   chown -R root.root .
   ./configure --prefix=/usr
   make CFLAGS=-O2

   #
   # zoo-2.10
   #
   cd $TMP
   tar -zxvf $CWD/zoo-2.10.tar.gz
   cd zoo-2.10
   chown -R root.root .
   zcat $CWD/zoo-2.10.diff.gz | patch -p0 -E --verbose --backup
   zcat $CWD/zoo-2.10.gcc333.diff.gz | patch -p1 -E --verbose --backup
   make generic
}

install() {
   mkdir -p /package-bin/bin \
            /package-bin/etc \
            /package-bin/usr/bin \
            /package-bin/usr/doc \
            /package-bin/usr/lib \
            /package-bin/usr/man/man1 \
            /package-bin/usr/man/man2 \
            /package-bin/usr/man/man3 \
            /package-bin/usr/man/man4 \
            /package-bin/usr/man/man5 \
            /package-bin/usr/man/man6 \
            /package-bin/usr/man/man7 \
            /package-bin/usr/man/man8 \
            /package-bin/usr/info \
            /package-bin/usr/sbin \
            /package-bin/usr/include \
            /package-bin/sbin

   ( cd /package-bin/
     tar -zxvf $CWD/_bin.tar.gz usr/bin/xx usr/bin/diskcopy
   )

   #
   # debianutils
   #
   cd $TMP/debianutils-$DUTILS
   cp -a mktemp savelog tempfile /package-bin/usr/bin
   cp -a mktemp.1 tempfile.1 /package-bin/usr/man/man1
   cp -a savelog.8 /package-bin/usr/man/man8

   #
   # eject
   #
   cd $TMP/eject-$EJECT
   make install DESTDIR=/package-bin PREFIX=/package-bin
   mkdir -p /package-bin/usr/doc/eject-$EJECT
   cp -a AUTHORS COPYING ChangeLog INSTALL NEWS PORTING PROBLEMS README TODO eject-$EJECT.lsm \
       /package-bin/usr/doc/eject-$EJECT
   #
   # fbset
   #
   cd $TMP/fbset-2.1
   cp -a fbset /package-bin/usr/sbin/fbset
   cp -a etc/fb.modes.ATI /package-bin/etc/fb.modes
   cp -a fb.modes.5 /package-bin/usr/man/man5/
   cp -a fbset.8 /package-bin/usr/man/man8/

   #
   # lha
   #
   cd $TMP/lha-114i
   cp -a src/lha /package-bin/usr/bin/

   #
   # ed
   #
   cd $TMP/ed-0.2
   make install prefix=/package-bin/usr
   rm /package-bin/usr/bin/red \
      /package-bin/usr/man/man1/red.1
   ( cd /package-bin/bin
     ln -sf ed red
   )

   #
   # compress
   #
   cd $TMP/compress
   make install BIN=/package-bin/usr/bin MAN=/package-bin/usr/man/man1
   ( cd /package-bin/bin
     rm -rf compress ; ln -sf /usr/bin/compress compress
   )

   ( cd /package-bin/usr/bin/
     rm -f atob btoa compressdir tarmail uncompressdir untarmail zcat zcmp zdiff zmore
     rm -rf uncompress ; ln -sf compress uncompress
   )

   #
   # banners
   #
   cd $TMP/banners
   cp -a bban sysvbanner /package-bin/usr/bin/

   #
   # file
   #
   cd $TMP/file-$FILE
   make install DESTDIR=/package-bin
   mkdir -p /package-bin/usr/doc/file-$FILE
   cp -a LEGAL.NOTICE README /package-bin/usr/doc/file-$FILE

   ( cd /package-bin/etc/file
     mv magic magic.new
     mv magic.mime magic.mime.new
     rm *.mgc
   )
   # Pat says:
   # /etc/magic has been traditional for so long that it seems like a
   # real good idea to provide a link:
   ( cd /package-bin/etc
     rm -f magic ; ln -sf file/magic magic
     rm -f magic.mime ; ln -sf file/magic.mime
   )

   #
   # dosfstools
   #
   cd $TMP/dosfstools-$DOSFS
   mkdir -p /package-bin/usr/doc/dosfstools-$DOSFS/mkdosfs
   cp -a CHANGES README.Atari TODO /package-bin/usr/doc/dosfstools-$DOSFS

   ( cd mkdosfs
     cp -a mkdosfs /package-bin/sbin/
     cp -a mkdosfs.8 /package-bin/usr/man/man8/
     cp -a ANNOUNCE COPYING ChangeLog README mkdosfs-ygg-0.3b.lsm \
         /package-bin/usr/doc/dosfstools-$DOSFS/mkdosfs
   )

   mkdir /package-bin/usr/doc/dosfstools-$DOSFS/dosfsck
   ( cd dosfsck
     cp -a dosfsck /package-bin/sbin/
     cp -a dosfsck.8 /package-bin/usr/man/man8/
     cp -a CHANGES COPYING README /package-bin/usr/doc/dosfstools-$DOSFS/dosfsck
   )

   #
   # patch
   #
   cd $TMP/patch-2.5.4
   make install prefix=/package-bin/usr
   mkdir /package-bin/usr/doc/patch-2.5.4
   cp -a AUTHORS COPYING INSTALL NEWS README /package-bin/usr/doc/patch-2.5.4

   #
   # rpm2targz
   #
   cd $TMP
   cp -a rpmoffset /package-bin/usr/bin
   cp -a $CWD/rpm2targz /package-bin/usr/bin
   ( cd /package-bin/usr/bin
     rm -rf rpm2tgz ; ln -sf rpm2targz rpm2tgz
   )
   mkdir /package-bin/usr/doc/rpm2targz
   cp -a $CWD/rpm2targz.README /package-bin/usr/doc/rpm2targz

   #
   # run-parts
   #
   zcat $CWD/run-parts.gz > /package-bin/usr/bin/run-parts
   cp -a $CWD/run-parts.8.gz /package-bin/usr/man/man8/run-parts.8.gz

   #
   # sharutils
   #
   cd $TMP/sharutils-4.2.1
   mkdir -p /package-bin/usr/doc/sharutils-4.2.1
   cp -a ABOUT-NLS AUTHORS BACKLOG COPYING INSTALL \
         NEWS README README.OLD THANKS TODO \
       /package-bin/usr/doc/sharutils-4.2.1

   ( cd src/
     cp -a shar unshar uuencode uudecode /package-bin/usr/bin
   )

   cp -a doc/sharutils.info /package-bin/usr/info

   echo '.so man1/uuencode.1' > /package-bin/usr/man/man1/uudecode.1

   for page in shar.1.gz unshar.1.gz uuencode.1.gz ; do
     cp -a $CWD/$page /package-bin/usr/man/man1/$page
   done

   cp -a $CWD/uuencode.5.gz /package-bin/usr/man/man5/uuencode.5.gz

   #
   # splitvt
   #
   cd $TMP/splitvt-1.6.5
   cp -a splitvt /package-bin/usr/bin
   cp -a splitvt.1 /package-bin/usr/man/man1
   mkdir -p /package-bin/usr/doc/splitvt-1.6.5
   cp -a examples ANNOUNCE CHANGES NOTES README TODO \
       /package-bin/usr/doc/splitvt-1.6.5
   
   #
   # time
   #
   cd $TMP/time-1.7
   make install prefix=/package-bin/usr

   #
   # todos
   #
   cd $TMP/todos
   cp -a todos fromdos /package-bin/usr/bin
   cp -a fromdos.1.gz todos.1.gz /package-bin/usr/man/man1
   
   #
   # tree
   #
   cd $TMP/tree-1.4
   make install prefix=/package-bin/usr
   mkdir /package-bin/usr/doc/tree-1.4b3
   cp -a CHANGES LICENSE README README.sacl /package-bin/usr/doc/tree-1.4b3

   #
   # unarj230
   #
   cd $TMP/unarj230
   make install INSTALLDIR=/package-bin/usr/bin

   #
   # which
   #
   cd $TMP/which-$WHICH
   make install DESTDIR=/package-bin
   mv /package-bin/usr/bin/which /package-bin/bin/
   ( cd /package-bin/usr/bin
    rm -rf which ; ln -sf ../../bin/which which
   )
   mkdir /package-bin/usr/doc/which-$WHICH
   cp -a AUTHORS COPYING EXAMPLES INSTALL NEWS README README.alias \
       /package-bin/usr/doc/which-$WHICH

   #
   # zoo
   #
   cd $TMP/zoo-2.10/
   cp -a fiz zoo /package-bin/usr/bin
   cp -a fiz.1 zoo.1 /package-bin/usr/man/man1

   mv /package-bin/usr/bin/ed /package-bin/bin/

   # Add a very handy tool for scanning new SCSI devices.  Most useful for
   # finding new USB and Firewire storage devices which show up as SCSI.
   cp -a $CWD/rescan-scsi-bus /package-bin/sbin/rescan-scsi-bus

   ( cd /package-bin/usr/man/man1
     rm atob.1 btoa.1 compressdir.1 tarmail.1 untarmail.1 zcat.1 zcmp.1 zdiff.1 zmore.1
   )

   ( cd /package-bin/usr/info
     gzip -9 *
   )

   ( cd /package-bin/usr/man
     for dir in 1 3 5 8; do
       ( cd man$dir
         gzip -9f *.$dir
       )
     done
   )

   ( cd /package-bin/usr/bin/
     rm -f atob btoa compressdir tarmail uncompressdir untarmail zcat zcmp zdiff zmore
   )

   rm -rf /package-bin/share/
}

attributes() {
   chown -R root.bin $PKG/package-bin/bin \
                     $PKG/package-bin/sbin \
                     $PKG/package-bin/usr/bin \
                     $PKG/package-bin/usr/sbin
   chmod 755 $PKG/package-bin/sbin/rescan-scsi-bus \
             $PKG/package-bin/usr/bin/rpm2targz \
             $PKG/package-bin/usr/bin/run-parts \
             $PKG/package-bin/usr/bin/savelog
   chmod 644 $PKG/package-bin/usr/man/man1/*
}

special() {
   cd $PKG
   mv package-bin/* ./
   rmdir package-bin

   cd $CTL
   cat $CWD/slack-desc > slack-desc

   sed -e 's%package-bin/%%g' doinst.sh > doinst.sh.new
   cat doinst.sh.new > doinst.sh
   rm doinst.sh.new

   cat $CWD/config.sh >> doinst.sh

cat << EOF >> doinst.sh
config etc/file/magic.new
config etc/file/magic.mime.new

# Don't let an upgrade nuke someone's old /etc/magic files:
if [ -f etc/magic -a ! -L etc/magic ]; then
  mv etc/magic etc/magic.old
fi
if [ -f etc/magic.mime -a ! -L etc/magic.mime ]; then
  mv etc/magic.mime etc/magic.mime.old
fi

( cd usr/lib ; rm -rf makewhatis )
( cd usr/lib ; ln -sf /usr/sbin/makewhatis makewhatis )
( cd sbin ; rm -rf fsck.hpfs )
( cd sbin ; ln -sf /bin/true fsck.hpfs )
( cd sbin ; rm -rf fsck.msdos )
( cd sbin ; ln -sf /bin/true fsck.msdos )
( cd sbin ; rm -rf fsck.umsdos )
( cd sbin ; ln -sf /bin/true fsck.umsdos )
( cd sbin ; rm -rf mkfs.msdos )
( cd sbin ; ln -sf mkdosfs mkfs.msdos )
EOF
}

# ...it used to be a lot more complicated.  Then, we took all the complexity
# and broke it out into lots of smaller files.  Now that it's all hidden from
# you, it must be simpler.  :)
#       - Chris
