#!/bin/bash

# sysvinit-functions.SlackBuild
# Heavily based on the original Slackware build scripts,
# Modified by Stuart Winter <mozes@slackware.com>
#
# The functions that ship in /etc/rc.d/init.d are used mainly
# by Red Hat (and derived) systems.  Most users will not need
# them, but since some commerical software makes the assuption
# that /etc/rc.d/init.d/functions will exist (and uses it),
# shipping at least it and the sysvinit runlevel directories
# will probably make life easier for everybody.  We'll maybe
# ever consider splitting a few of the functions of the old
# venerable BSD-style init scripts into runlevel scripts (if
# it looks like it will make system maintainance easier).

# 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

# Extract source:
tar xvvf $CWD/function-src-$VERSION.tar.bz2 
cd function-src*
slackhousekeeping

# If necessary, start the fakeroot server so we can set file/dir ownerships:
start_fakeroot

# Build:
make || failmake

# Install into package:
mkdir -p $PKG/bin $PKG/sbin $PKG/usr/man/man{1,8}
make install DESTDIR=$PKG

# The FHS/LSB is a little bit unclear as to what to do here --
# /etc/rc.d/init.d has been declared "deprecated" for no good
# reason at all (commercial vendors couldn't find /etc/rc.d?),
# so we'll make both /etc/init.d and /etc/rc.d/init.d with the
# same contents.  Hopefully this will make all the programs
# happy.
#
mkdir -p $PKG/etc/rc.d/init.d
for file in $CWD/README.functions $CWD/functions ; do
  cat $file > $PKG/etc/init.d/$(basename $file)
  cat $file > $PKG/etc/rc.d/init.d/$(basename $file)
done
chmod 755 $PKG/etc/rc.d/init.d/functions

# Make empty runlevel directories:
mkdir -p $PKG/etc/rc.d/rc{0,1,2,3,4,5,6}.d

# 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
