#!/bin/bash

# pkgtools.SlackBuild
# by Stuart Winter <mozes@slackware.com> for the Slackware porting Project.
# Heavily based on the original Slackware build script.
# 06-Jun-2004

# Record toolchain & other info for the build log:
slackbuildinfo

# Paths to skeleton port's source & real Slackware source tree:
export CWD=$SLACKSOURCE/$PKGSERIES/$PKGNAM
export PORTCWD=$PWD

# Temporary build locations:
export TMPBUILD=$TMP/build-$PKGNAM
export PKG=$TMP/package-$PKGNAM
mkpkgdirs # Delete & re-create temporary directories then cd into $TMPBUILD

######## Slackware pkgtools #############################################

# Install Slackware script manpages:
( cd $CWD/manpages
  mkdir -p $PKG/usr/man/man8
  for page in explodepkg.8 installpkg.8 makepkg.8 upgradepkg.8 pkgtool.8 \
    removepkg.8 ; do
    cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
  done
)

# Install Slackware scripts:
( cd $CWD/scripts
  mkdir -p $PKG/sbin
  for file in explodepkg installpkg makebootdisk makepkg pkgtool removepkg upgradepkg ; do
    install -oroot -groot -pm755 $CWD/scripts/$file $PKG/sbin
  done
  # These scripts are used during the installation:
  mkdir -pm700 $PKG/var/log/setup/tmp
  for file in setup.* ; do
    install -pm755 -oroot -groot $file $PKG/var/log/setup
  done
)

########################################################################

# Stuff specific to ARMedslack
if [ $ARCH = arm ]; then
   # This isn't required for ARM machines.  ARM boxes require 
   # arch-specific boot loaders.
   rm -f $PKG/sbin/makebootdisk
   # And this setup script is called by the installer but it's
   # useless for RISC OS based machines where we need to modify
   # the RISC OS !GRUB config file:
   # Later versions of this script create a USB stick, but given that
   # we'll be installing ARMedslack to a USB stick on the SheevaPlug
   # platform, we definitley don't want to do this! ;-)
   rm -f $PKG/var/log/setup/*.make-bootdisk
   rm -f $PKG/var/log/setup/*.install-kernel
   ( cd $PKG/sbin
     # Apply speedup fixes:
     patch -p0 --verbose < $PORTCWD/sources/installpkg.speedup.diff || failpatch 
     patch -p0 --verbose < $PORTCWD/sources/removepkg.speedup.diff || failpatch 
     patch -p0 --verbose < $PORTCWD/sources/upgradepkg.speedup.diff || failpatch 

     # A makepkg update:
     # patch --no-backup-if-mismatch --verbose -p0 < $PORTCWD/sources/makepkg.diff || failpatch
   ) || failpatch
fi

# Apply generic Slackware packaging policies:
cd $PKG
slackstripall   # strip all .a archives and all ELFs
slackgzpages -i # compress man & info pages and delete usr/info/dir
slackslack      # chown -R root:root, chmod -R og-w, slackchown, slack644docs
slackdesc       # install slack-desc and doinst.sh
slackmp         # run makepkg -l y -c n

# Perform any final checks on the package:
cd $PKG
slackhlinks     # search for any hard links
