#!/bin/bash # # Copyright (c) 2006 Eric Hameleers # Distributed under the terms of the GNU General Public License, Version 2 # ----------------------------------------------------------------------------- # # Slackware SlackBuild script # =========================== # By: Eric Hameleers # For: webalizer # URL: http://www.mrunix.net/webalizer/ # Needs: gd, freetype2 # Changelog: # 2.01.10-1: 15/may/2005 by Eric Hameleers # * Initial build. # 2.01.10-2: 15/may/2005 by Eric Hameleers # * Fixed the DNS resolving (detection of db 1.85 compat) # 2.01.10-3: 28/apr/2006 by Eric Hameleers # * Linked against gd-nox to avoid dependency on x11 (still # needs freetype2 though!) # 2.01.10-4: 28/apr/2006 by Eric Hameleers # * Added a "STATIC" variable to the script, so you can build # webalizer without any dependencies at all. # # small changes by rhatto # # Run 'sh SlackBuild --cleanup' to build a Slackware package. # The package (.tgz) plus descriptive .txt file are created in /tmp . # Install using 'installpkg'. # # ----------------------------------------------------------------------------- # --- INIT --- # Set initial variables: CWD="`pwd`" if [ -f ~/.slackbuildrc ]; then source ~/.slackbuildrc elif [ -f /etc/slackbuildrc ]; then source /etc/slackbuildrc fi # change STATIC to anything other than "yes" to enable dynamic build. STATIC=${STATIC:-no} [ "$STATIC" == "yes" ] && \ PRGNAM=webalizer_static || \ PRGNAM=webalizer SRCNAM="webalizer" SRCVER="2.01-10" VERSION=${VERSION:=2.01.10} ARCH=${ARCH:-i486} BUILD=${BUILD:=1rha} PACKAGE="$PRGNAM" SRC_DIR=${SRC:=$CWD} TMP=${TMP:=/tmp} REPOS=${REPOS:=$TMP} DOCS="CHANGES COPYING Copyright DNS.README INSTALL README README.FIRST country-codes.txt" if [ "$ARCH" == "x86_64" ]; then LIBDIR=/usr/lib64 else LIBDIR=/usr/lib fi RTOOL="wget" PACKAGE_EXT="tgz" SRC="$SRCNAM-$SRCVER-src.$PACKAGE_EXT" URL="ftp://ftp.mrunix.net/pub/webalizer/$SRC" if [ "$PACKAGE_EXT" == "bz2" ]; then tarflag="j" else tarflag="z" fi SRC_DIR="$SRC_DIR/$PACKAGE" mkdir -p $SRC_DIR if [ "$RTOOL" == "wget" ] && [ ! -f "$SRC_DIR/$SRC" ]; then wget "$URL" -O "$SRC_DIR/$SRC" fi if [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -march=i386 -mcpu=i686" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mcpu=i686" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2" fi TMP="$TMP/$PACKAGE" PKG=$TMP/package-$PRGNAM rm -rf $TMP mkdir -p $PKG # --- PACKAGE BUILDING --- echo "++" echo "|| $PRGNAM-$VERSION" echo "++" cd $PKG # Explode the package framework: if [ -f $CWD/_$PRGNAM.tar.gz ]; then explodepkg $CWD/_$PRGNAM.tar.gz fi cd $TMP # --- TARBALL EXTRACTION,PATCH,MODIFY --- echo "Extracting the program sources for $PRGNAM..." tar xvf$tarflag $SRC_DIR/$SRC mv ${SRCNAM}-${SRCVER} ${PRGNAM}-${SRCVER} cd ${PRGNAM}-${SRCVER} chown -R root.root * # --- BUILDING --- echo Building ... CPPFLAGS="-I/usr/include/db4" \ CFLAGS="$SLKCFLAGS $CPPFLAGS" \ ./configure --prefix=/usr \ --localstatedir=/var \ --sysconfdir=/etc \ --with-db=/usr/include/db4 \ --with-dblib=/lib \ --libdir=$LIBDIR \ --enable-dns \ $([ "$STATIC" == "yes" ] && echo "--enable-static" || echo "") \ 2>&1 | tee $TMP/configure-${PRGNAM}.log make 2>&1 | tee $TMP/make-${PRGNAM}.log # # Install all the needed stuff to the package dir # mkdir -p $PKG/etc mkdir -p $PKG/usr/bin mkdir -p $PKG/usr/man/man1 # Use installwatch if available: which installwatch > /dev/null 2>&1 if [ $? == 0 ]; then installwatch -o $TMP/install-${PRGNAM}.log \ make BINDIR=$PKG/usr/bin MANDIR=$PKG/usr/man/man1 ETCDIR=$PKG/etc install else make BINDIR=$PKG/usr/bin MANDIR=$PKG/usr/man/man1 ETCDIR=$PKG/etc install \ 2>&1 |tee $TMP/install-${PRGNAM}.log fi # --- DOCUMENTATION --- mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a $DOCS \ $PKG/usr/doc/$PRGNAM-$VERSION chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* # Compress the man page(s) find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; # Strip binaries ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) # --- OWNERSHIP, RIGHTS --- chmod -R o-w $PKG # --- PACKAGE DESCRIPTION --- mkdir -p $PKG/install cat $CWD/$([ "$STATIC" == "yes" ] && echo "$PRGNAM." || echo "")slack-desc > $PKG/install/slack-desc if [ -f $CWD/doinst.sh ]; then cat $CWD/doinst.sh > $PKG/install/doinst.sh else echo '( if [ ! -f "/etc/webalizer.conf" ]; then mv /etc/webalizer.conf.sample /etc/webalizer.conf; fi )' > $PKG/install/doinst.sh fi # --- BUILDING --- # Build the package: cd $PKG makepkg --linkadd y --chown n $REPOS/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz \ 2>&1 | tee $TMP/makepkg-${PRGNAM}.log #(cd $REPOS && md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz.md5) #cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $REPOS/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt # --- CLEANUP --- # Clean up the extra stuff: if [ "$CLEANUP" == "yes" ]; then rm -rf $TMP fi