#!/bin/sh # Slackware build script for cacti: # a network graphing solution using rrdtool # Copyright 2009-2012 Niels Horn, Rio de Janeiro, RJ, Brazil # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # revision date 2012/02/17 PRGNAM=cacti VERSION=${VERSION:-0.8.7i_p1} ARCH=noarch BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PATCHLEVEL=$(echo "${VERSION}p" | cut -f2 -dp) [ "x$PATCHLEVEL" = "x" ] && PATCHLEVEL=0 # 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="settings_checkbox.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 patchfound=0 for patch in $PATCHES; do patch -p1 < $CWD/$patch && let patchfound=$patchfound+1 done # Test if we processed all patches if [ $patchfound -ne $PATCHLEVEL ]; then echo "Incorrect number of patches: level = $PATCHLEVEL / found = $patchfound" exit 1 fi # "Install" to $DOCROOT/cacti mkdir -p $PKG/$DOCROOT/$PRGNAM cp -a \ *.php *.pl \ include resource lib rra images cli scripts 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 640 $PKG/etc/$PRGNAM/config.php.new # Create empty log file mkdir -p $PKG/var/log/cacti touch $PKG/var/log/cacti/cacti.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 cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}