#
# Still a lot of works on this but something to start with :)
#

description="Unix init scheme with service supervision"
url="http://smarden.org/runit/"

packager="tnut <tnut@nutyx.org>"

name=runit
version=2.1.2
release=3

libc_name=dietlibc
libc_version=0.34

source=(http://www.fefe.de/${libc_name}/${libc_name}-${libc_version}.tar.xz
        $url/$name-$version.tar.gz $name-$version-consolidate-$release.patch)

prepare() {
cd ${libc_name}-${libc_version}
make
# PATH=$SRC/${libc_name}-${libc_version}/bin-$(uname -m):$PATH
}

build() {
unset MAKEFLAGS
[ "$(uname -m)" == "i686" ] && PKGMK_ARCH="i386"
PATH=$SRC/${libc_name}-${libc_version}/bin-${PKGMK_ARCH}:$PATH
cd admin
patch -Np1 -i ../$name-$version-consolidate-$release.patch
cd $name-$version

echo 'diet -Os gcc -O2 -Wall' >src/conf-cc
echo 'diet -Os gcc -s -Os -pipe' >src/conf-ld

package/compile
package/check

# pause command
cat > src/pause.c << "EOF"
#include <unistd.h>
#include <signal.h>

static void
nop(int sig)
{
}

int
main()
{
  signal(SIGTERM, nop);
  signal(SIGINT, nop);
  signal(SIGHUP, SIG_IGN);

  pause();

  return 0;
}
EOF
cc src/pause.c -o command/pause

mkdir -p $PKG/{sbin,lib/init/services}

# Let see this later :)
# install -m755 command/runit-init \
# $PKG/sbin/init

for i in chpst runit runsv runsvchdir runsvdir sv svlogd utmpset runit-init pause
do
  install -m755 command/$i \
  $PKG/sbin/$i
done
#
# a simple busybox getty for trying
# This will be in busybox package later
mkdir -p $PKG/lib/init/services/getty-8

sed -e s@tty5@tty8@ etc/debian/getty-tty5/run \
 > $PKG/lib/init/services/getty-8/run
sed -e s@tty5@tty8@ etc/debian/getty-tty5/finish \
 > $PKG/lib/init/services/getty-8/finish

chmod 755 $PKG/lib/init/services/getty-8/{run,finish}

# ctrlaltdelete :)
cp -a etc/debian/ctrlaltdel \
$PKG/lib/init

#
# a simple '1' script for trying

cat > $PKG/lib/init/1 << "EOF"
#!/bin/sh
# system one time tasks

PATH=/command:/usr/bin:/bin:/usr/sbin:/sbin

. /lib/lsb/init-functions
do_mount_virtualfs
do_load_modules
do_start_localnet
do_start_udev
do_start_checkfs
do_start_mountfs
do_start_sysklogd
/sbin/setup-nutyx start
do_start_clock
do_start_cleanfs
do_start_udev_retry
do_start_swap
do_start_console
do_start_sysctl

touch /lib/init/stopit
chmod 0 /lib/init/stopit
EOF

#
# a simple '2' script for trying

cat > $PKG/lib/init/2 << "EOF"
#!/bin/sh

PATH=/command:/usr/bin:/bin:/usr/sbin:/sbin
exec env - PATH=$PATH \
runsvdir -P /etc/init/default 'log: .........................................................................................................................................................................................................................................................................................................................................................................................................'
EOF

#
# a simple '3' script for trying

cat > $PKG/lib/init/3 << "EOF"
#!/bin/sh
exec 2>&1
PATH=/command:/usr/bin:/bin:/usr/sbin:/sbin

LAST=0
test -x /lib/init/reboot && LAST=6
echo 'Waiting for services to stop ...'
sv -w196 force-stop /lib/init/services/*
sv exit /lib/init/services/*

echo "Shutdown..."
# /etc/init.d/rc $LAST
EOF

chmod 755 $PKG/lib/init/{1,2,3}
}
