#!/bin/sh # Slackware build script for cacti: # a network graphing solution using rrdtool # Written by Niels Horn # revision date 2010/09/17 PRGNAM=cacti VERSION=${VERSION:-0.8.7g_p7} ARCH=noarch BUILD=${BUILD:-1} TAG=${TAG:-_SBo} # Remove patch-level from $PRGNAM if it exists SRCVERSION=$(echo "${VERSION}_" | cut -f1 -d_) DOCROOT=${DOCROOT:-/var/www/htdocs} PHPUSER=${PHPUSER:-root} PHPGROUP=${PHPGROUP:-apache} # To create valid symlinks, we need a relative path from DOCROOT RELPATH="" for i in $(echo $DOCROOT | tr "/" " "); do RELPATH="${RELPATH}../" done # Current PATCHES (empty if none for now) PATCHES="data_source_deactivate.patch \ graph_list_view.patch \ html_output.patch \ ldap_group_authenication.patch \ script_server_command_line_parse.patch \ ping.patch \ poller_interval.patch" CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} set -e rm -rf $TMP/$PRGNAM-$SRCVERSION $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP tar xvf $CWD/$PRGNAM-$SRCVERSION.tar.gz cd $PRGNAM-$SRCVERSION chown -R root:root . chmod -R u+w,go+r-w,a-s . # Apply patches from upstream for patch in $PATCHES; do patch -p1 < $CWD/$patch done # "Install" to $DOCROOT/cacti mkdir -p $PKG/$DOCROOT/$PRGNAM cp -a \ *.php *.pl \ include resource lib rra images cli scripts log install \ $PKG/$DOCROOT/$PRGNAM/ chown -R $PHPUSER:$PHPGROUP $PKG/$DOCROOT/$PRGNAM # Move configuration & create symbolic link mkdir -p $PKG/etc/$PRGNAM cd $PKG/$DOCROOT/$PRGNAM/include/ mv config.php $PKG/etc/$PRGNAM/config.php ln -sf ../../$RELPATH/etc/$PRGNAM/config.php config.php cd - # Rename config file and set permissions to hide passwords mv $PKG/etc/$PRGNAM/config.php $PKG/etc/$PRGNAM/config.php.new chmod 600 $PKG/etc/$PRGNAM/config.php.new # Rename initial log file to avoid overwriting it during upgrades mv $PKG/$DOCROOT/$PRGNAM/log/$PRGNAM.log $PKG/$DOCROOT/$PRGNAM/log/$PRGNAM.log.new # Copy docs & create symbolic link mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a \ LICENSE docs/* \ $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/$DOCROOT/$PRGNAM/docs cd $PKG/$DOCROOT/$PRGNAM/docs ln -sf ../../$RELPATH/usr/doc/$PRGNAM-$VERSION/html html cd - # Copy post-installation scripts to /usr/share/cacti mkdir -p $PKG/usr/share/$PRGNAM cp cacti.sql $PKG/usr/share/$PRGNAM mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh # include logfile rename to doinst.sh echo "config .$DOCROOT/$PRGNAM/log/$PRGNAM.log.new" >> $PKG/install/doinst.sh cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}