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