86 lines
2.4 KiB
Bash
Executable File
86 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Fake Root Solaris Build System - Prototype
|
|
#
|
|
# The following code has been provide under Public Domain License. I really
|
|
# don't care what you use it for. Just as long as you don't complain to me
|
|
# nor my employer if you break it. - Ben Lindstrom (mouring@eviladmin.org)
|
|
#
|
|
umask 022
|
|
PKGNAME=OpenSSH
|
|
|
|
## Extract common info requires for the 'info' part of the package.
|
|
VERSION=`tail -1 ../../version.h | sed -e 's/.*_\([0-9]\)/\1/g' | sed 's/\"$//'`
|
|
ARCH=`uname -p`
|
|
|
|
## Start by faking root install
|
|
echo "Faking root install..."
|
|
START=`pwd`
|
|
FAKE_ROOT=$START/package
|
|
mkdir $FAKE_ROOT
|
|
cd ../..
|
|
make install-nokeys DESTDIR=$FAKE_ROOT
|
|
|
|
## Fill in some details, like prefix and sysconfdir
|
|
ETCDIR=`grep "^sysconfdir=" Makefile | sed 's/sysconfdir=//'`
|
|
PREFIX=`grep "^prefix=" Makefile | cut -d = -f 2`
|
|
PIDDIR=`grep "^piddir=" Makefile | cut -d = -f 2`
|
|
cd $FAKE_ROOT
|
|
|
|
## Setup our run level stuff while we are at it.
|
|
mkdir -p $FAKE_ROOT/etc/init.d
|
|
mkdir -p $FAKE_ROOT/etc/rcS.d
|
|
mkdir -p $FAKE_ROOT/etc/rc0.d
|
|
mkdir -p $FAKE_ROOT/etc/rc1.d
|
|
mkdir -p $FAKE_ROOT/etc/rc2.d
|
|
|
|
|
|
## setup our initscript correctly
|
|
sed -e "s#%%configDir%%#$ETCDIR#g" \
|
|
-e "s#%%openSSHDir%%#$PREFIX#g" \
|
|
-e "s#%%pidDir%%#$PIDDIR#g" \
|
|
../opensshd.in > $FAKE_ROOT/etc/init.d/opensshd
|
|
chmod 711 $FAKE_ROOT/etc/init.d/opensshd
|
|
|
|
ln -s ../init.d/opensshd $FAKE_ROOT/etc/rcS.d/K30opensshd
|
|
ln -s ../init.d/opensshd $FAKE_ROOT/etc/rc0.d/K30opensshd
|
|
ln -s ../init.d/opensshd $FAKE_ROOT/etc/rc1.d/K30opensshd
|
|
ln -s ../init.d/opensshd $FAKE_ROOT/etc/rc2.d/S98opensshd
|
|
|
|
|
|
## Ok, this is outright wrong, but it will work. I'm tired of pkgmk
|
|
## whining.
|
|
for i in *; do
|
|
PROTO_ARGS="$PROTO_ARGS $i=/$i";
|
|
done
|
|
|
|
## Build info file
|
|
echo "Building pkginfo file..."
|
|
cat > pkginfo << _EOF
|
|
PKG=$PKGNAME
|
|
NAME=OpenSSH Portable for Solaris
|
|
DESC="Secure Shell remote access utility; replaces telnet and rlogin/rsh."
|
|
VENDOR="OpenSSH Portable Team - http://www.openssh.com/portable.html"
|
|
BASEDIR=$FAKE_ROOT
|
|
ARCH=$ARCH
|
|
VERSION=$VERSION
|
|
CATEGORY=Security
|
|
BASEDIR=/
|
|
_EOF
|
|
|
|
## Next Build our prototype
|
|
echo "Building prototype file..."
|
|
find . | egrep -v "prototype|pkginfo" | sort | pkgproto $PROTO_ARGS | \
|
|
awk '
|
|
BEGIN { print "i pkginfo" }
|
|
{ $5="root"; $6="sys"; }
|
|
{ print; }' > prototype
|
|
|
|
## Step back a directory and now build the package.
|
|
echo "Building package.."
|
|
cd ..
|
|
pkgmk -d . -f $FAKE_ROOT/prototype -o
|
|
rm -rf $FAKE_ROOT
|
|
echo | pkgtrans -os . $PKGNAME-$ARCH-$VERSION.pkg
|
|
rm -rf $PKGNAME
|