#!/bin/sh -u
#
# Build solaris packages
#
# Helpful urls:
# http://www.sunfreeware.com/pkgadd.html
# http://docs.sun.com/db?p=/doc/806-7008
#
# Package names must be nine or fewer characters.
pkgid=DMNCspdy
modid1=DMNCspdya
modid2=DMNCspdy2
eval "modid=\$modid$APACHE_VERSION"
plpkg=SUNWpl5u
arch=`uname -p`
spool=/var/spool/pkg
os=Solaris`uname -r | awk -F. '{print $2}'`
# Package prototype file
make_proto() {
binlink=$1; shift
scripts=$1; shift
# Copy the files into $TMPDIR
copy_pkgfiles $TMPDIR "$@"
(
cd $PREFIX
echo i pkginfo=./pkginfo
echo i depend=./depend
echo i copyright=./copyright
if test "$scripts" -gt 0; then
echo i postinstall=./postinstall
echo i postremove=./postremove
fi
# Add a symlink in the "bin" directory
if test "$binlink" -gt 0 -a -d bin -a "$INSTALLBIN" != "bin"; then
b=`echo $INSTALLBIN | remove_prefix`
echo s none bin/speedy=../$b/speedy
fi
for f in `file_dest "$@"`; do echo $f; done |
remove_prefix |
awk '{printf("f none %s 0755 bin bin\n", $1, $2, $3, $4)}'
) >$TMPDIR/prototype
}
# Package info file
make_pkginfo() {
pkg=$1; shift
nm=$1; shift
desc=$1; shift
cat >$TMPDIR/pkginfo <<-END
PKG="$pkg"
NAME="$nm"
ARCH="$arch"
VERSION="$VERSION"
CATEGORY="system"
VENDOR="$VENDOR"
EMAIL="$EMAIL"
PSTAMP="$VENDOR"
BASEDIR="$PREFIX"
CLASSES="none"
HOTLINE="$URL"
DESC="$desc"
END
}
pl_depend() {
# Pass in 0/1 to decide if output should be pretty
(
echo $1
pkginfo -l $plpkg
) |
awk '
NR == 1 {
pretty = $1;
}
$1 == "NAME:" {
for (i = 2; i <= NF; ++i)
name = name " " $i;
}
$1 == "VERSION:" {
version = $2;
}
END {
if (pretty) {
printf("%s ('"$plpkg"')\n", name);
} else {
printf("P '"$plpkg"'%s\n %s\n", name, version);
}
}
'
}
make_depend() {
cat >$TMPDIR/depend
}
make_pkg() {
is_apache=$1; shift
pkg=$1; shift
nm=$1; shift
out=$OUTDIR/${os}-${nm}-${VERSION}-${arch}.gz
# Make the package
rm -rf $spool/$pkg
(cd $TMPDIR; pkgmk -r "${TMPDIR}${PREFIX}") &&
# Make it into a stream
(cd $spool; pkgtrans -s $spool $TMPDIR/$pkg $pkg) &&
rm -rf $spool/$pkg &&
# Compress and make final output file
gzip -9 <$TMPDIR/$pkg >$out
add_desc $out $is_apache $os $arch "$@"
}
# Make a copyright file
cp COPYING $TMPDIR/copyright
# Make regular package
make_proto 1 0 $STD_FILES </dev/null &&
make_pkginfo $pkgid "$PKGNM_PRETTY" "`grab_summary`" &&
pl_depend 0 | make_depend &&
make_pkg 0 $pkgid $PKGNM "`pl_depend 1`" &&
if want_apache_package; then
# Make pre/postinstall scripts for apache
apache_install_script '$BASEDIR' 'FCS' >$TMPDIR/postinstall
apache_uninstall_script >$TMPDIR/postremove
# Make apache module package
make_proto 0 1 $APACHE_FILES &&
make_pkginfo $modid "$MODNM_PRETTY" "$APACHE_DESC" &&
(
echo "P SUNWapchu Apache Web Server (usr)"
echo "P SUNWapchr Apache Web Server (root)"
echo "P $pkgid $PKGNM_PRETTY"
) |
make_depend &&
make_pkg $APACHE_VERSION $modid ${PKGNM}-${MODNM} \
"Apache Web Server (SUNWapchu, SUNWapchr)"
fi