|
Packit |
fcad23 |
#!/bin/ksh
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# automatic build (configure/make/package) script
|
|
Packit |
fcad23 |
# for NET-SNMP on Solaris
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# 2004/11 Rewrite to strictly build the package jfrank@fastrieve.com
|
|
Packit |
fcad23 |
# 2002/11 Stefan.Radman@CTBTO.ORG
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# If you define DEBUG, the script will be verbose, and we won't remove temporary files
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#DEBUG=Y
|
|
Packit |
fcad23 |
if [ ! -z $DEBUG ]; then
|
|
Packit |
fcad23 |
set -x # be verbose
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# TMP is where we are temporarily installing the package to
|
|
Packit |
fcad23 |
TMP=`pwd`/pkgroot
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# PKG is the internal and external name for the package
|
|
Packit |
fcad23 |
PKG=OSSnet-snmp
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#PREFIX is the top level architecture dependent directory.
|
|
Packit |
fcad23 |
# This should be normally determined by configure
|
|
Packit |
fcad23 |
#prefix=/opt/${PKG}
|
|
Packit |
fcad23 |
prefix=/usr/local
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# VARDIR is the persistent dir from configure
|
|
Packit |
fcad23 |
VARDIR=/var/net-snmp
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
expandedprefix=${TMP}/${prefix}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
PERL=${PERL:=`which perl`}
|
|
Packit |
fcad23 |
MAKE=${MAKE:=`which make`}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ -d ${TMP} ]; then
|
|
Packit |
fcad23 |
rm -rf ${TMP};
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# install to temporary package build root
|
|
Packit |
fcad23 |
cd ../..
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
$MAKE install prefix=${expandedprefix} exec_prefix=${expandedprefix} || exit 1
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# We now have the main software installed, copy over the auxillary files
|
|
Packit |
fcad23 |
cd -
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
awk /^___snmpd-init.d/,/___EOF/ $0 | grep -v ^___ | sed "s,@prefix@,$prefix,g" >|snmpd-init.d
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# create persistent directory if it does not exist
|
|
Packit |
fcad23 |
[ -d $TMP/$VARDIR ] || install -d -m 0755 $TMP/$VARDIR
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# postinstall
|
|
Packit |
fcad23 |
LD_LIBRARY_PATH=$TMP$prefix/lib:$LD_LIBRARY_PATH $TMP/$prefix/bin/snmptranslate\
|
|
Packit |
fcad23 |
-M$TMP/$prefix/share/snmp/mibs -m SNMPv2-SMI .1 >&- || exit $? # create MIB index
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# package
|
|
Packit |
fcad23 |
version=`../../net-snmp-config --version`
|
|
Packit |
fcad23 |
os=`uname -s`
|
|
Packit |
fcad23 |
rel=`uname -r`
|
|
Packit |
fcad23 |
class=snmp
|
|
Packit |
fcad23 |
owner=$LOGNAME
|
|
Packit |
fcad23 |
groups | awk '{print $1}' | read group
|
|
Packit |
fcad23 |
cat <<== >|pkginfo
|
|
Packit |
fcad23 |
PKG="${PKG}"
|
|
Packit |
fcad23 |
NAME="net-snmp-$version"
|
|
Packit |
fcad23 |
ARCH="`uname -p`"
|
|
Packit |
fcad23 |
VERSION="$version, $os $rel, `date +%Y.%m.%d.%H.%M.%S`"
|
|
Packit |
fcad23 |
CATEGORY="OpenSource"
|
|
Packit |
fcad23 |
DESC="The NET-SNMP Tools and Library"
|
|
Packit |
fcad23 |
VENDOR="http://net-snmp.sourceforge.net"
|
|
Packit |
fcad23 |
CLASSES="$class"
|
|
Packit |
fcad23 |
BASEDIR="$prefix"
|
|
Packit |
fcad23 |
==
|
|
Packit |
fcad23 |
. ./pkginfo
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
echo 'checking dependencies'
|
|
Packit |
fcad23 |
unset LD_LIBRARY_PATH # binaries and libraries should have RPATH now
|
|
Packit |
fcad23 |
./elfdepend.sh $TMP | grep -v "P *$PKG " >|depend # ignore own package
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
echo 'creating prototype file'
|
|
Packit |
fcad23 |
cat <<== >|prototype
|
|
Packit |
fcad23 |
i pkginfo
|
|
Packit |
fcad23 |
i copyright=../../COPYING
|
|
Packit |
fcad23 |
#i preinstall=./preinstall-postremove
|
|
Packit |
fcad23 |
#i postinstall=./preinstall-postremove
|
|
Packit |
fcad23 |
i depend
|
|
Packit |
fcad23 |
# set default mode, owner and group
|
|
Packit |
fcad23 |
! default 0775 root sys
|
|
Packit |
fcad23 |
d snmp /etc 0755 root sys
|
|
Packit |
fcad23 |
d snmp /etc/init.d 0755 root sys
|
|
Packit |
fcad23 |
f snmp /etc/init.d/snmpd=./snmpd-init.d 0755 root sys
|
|
Packit |
fcad23 |
#l snmp /etc/rc2.d/S76snmpd=/etc/init.d/snmpd # not yet
|
|
Packit |
fcad23 |
==
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
pkgproto -c snmp $TMP=/ |\
|
|
Packit |
fcad23 |
egrep -v '^d .* / |^d .* /var |^d .* /opt |^ .*perllocal.pod=' |\
|
|
Packit |
fcad23 |
sed -e "s/ $owner $group\$//" >> prototype || exit $?
|
|
Packit |
fcad23 |
# and ignore top level directories (must pre-exist)
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
echo 'creating package'
|
|
Packit |
fcad23 |
pkgmk -od . || exit $?
|
|
Packit |
fcad23 |
pkgtrans . $PKG-$version-$ARCH-$os$rel.pkg $PKG || exit $?
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# We should really do some cleanup here
|
|
Packit |
fcad23 |
if [ -z $DEBUG ]; then
|
|
Packit |
fcad23 |
rm -rf snmpd-init.d $PKG $TMP pkginfo prototype depend
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
echo "build was successfull"
|
|
Packit |
fcad23 |
exit 0
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# /etc/init/snmpd
|
|
Packit |
fcad23 |
# This is packaged inside of buildpackage-solaris because we need to substitute
|
|
Packit |
fcad23 |
# in the actual server name.
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
___snmpd-init.d___
|
|
Packit |
fcad23 |
#! /bin/sh
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# start/stop the NET-SNMP master agent (snmpd)
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# Location: /etc/init.d/snmpd
|
|
Packit |
fcad23 |
# /etc/rc3.d/S??snmpd
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
name="NET-SNMP agent"
|
|
Packit |
fcad23 |
daemon=@prefix@/sbin/snmpd
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
case "$1" in
|
|
Packit |
fcad23 |
start)
|
|
Packit |
fcad23 |
[ ! -x $daemon ] && echo "ERROR: cannot start $name ($daemon)" && exit 1
|
|
Packit |
fcad23 |
echo "Starting $name ... \c"
|
|
Packit |
fcad23 |
PGREP=`which pgrep`
|
|
Packit |
fcad23 |
if [ -z $PGREP ]; then
|
|
Packit |
fcad23 |
pid=`pgrep -fx $daemon`
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
pid=`ps -ef | grep $daemon | grep -v grep | awk '{print $2}'`
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
[ ! -z "$pid" ] && echo "already running with pid $pid." && exit 0
|
|
Packit |
fcad23 |
$daemon && echo "done."
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
stop)
|
|
Packit |
fcad23 |
echo "Stopping $name ... \c"
|
|
Packit |
fcad23 |
PGREP=`which pgrep`
|
|
Packit |
fcad23 |
if [ -z $PGREP ]; then
|
|
Packit |
fcad23 |
pid=`pgrep -fx $daemon`
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
pid=`ps -ef | grep $daemon | grep -v grep | awk '{print $2}'`
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
[ ! -z "$pid" ] && (kill $pid && echo "done" ) || echo "not running"
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
status)
|
|
Packit |
fcad23 |
echo "$name is \c"
|
|
Packit |
fcad23 |
PGREP=`which pgrep`
|
|
Packit |
fcad23 |
if [ -z $PGREP ]; then
|
|
Packit |
fcad23 |
pid=`pgrep -fx $daemon`
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
pid=`ps -ef | grep $daemon | grep -v grep | awk '{print $2}'`
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
[ -z "$pid" ] && echo "not running" || echo "running with pid $pid"
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
restart)
|
|
Packit |
fcad23 |
$0 stop && $0 start
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
reload)
|
|
Packit |
fcad23 |
echo "Re-initializing $name ...\c"
|
|
Packit |
fcad23 |
PGREP=`which pgrep`
|
|
Packit |
fcad23 |
if [ -z $PGREP ]; then
|
|
Packit |
fcad23 |
pid=`pgrep -fx $daemon`
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
pid=`ps -ef | grep $daemon | grep -v grep | awk '{print $2}'`
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
[ ! -z "$pid" ] && (kill -HUP $pid && echo "done" ) || echo "not running"
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
*)
|
|
Packit |
fcad23 |
echo "Usage: $0 { start | stop | status | restart | reload }"
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
esac
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
exit 0
|
|
Packit |
fcad23 |
___EOF___
|