summaryrefslogtreecommitdiff
path: root/system/cfengine/cfengine.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'system/cfengine/cfengine.SlackBuild')
-rw-r--r--system/cfengine/cfengine.SlackBuild74
1 files changed, 48 insertions, 26 deletions
diff --git a/system/cfengine/cfengine.SlackBuild b/system/cfengine/cfengine.SlackBuild
index f88193da82..fdab1fad49 100644
--- a/system/cfengine/cfengine.SlackBuild
+++ b/system/cfengine/cfengine.SlackBuild
@@ -1,11 +1,14 @@
#!/bin/sh
# Slackware build script for Cfengine
+# Written by Menno E. Duursma <druiloor@zonnet.nl>
-# Written by Menno Duursma <druiloor@zonnet.nl>
+# This program is free software. It comes without any warranty.
+# Granted WTFPL, Version 2, as published by Sam Hocevar. See
+# http://sam.zoy.org/wtfpl/COPYING for more details.
PRGNAM=cfengine
-VERSION=2.2.3
+VERSION=2.2.8
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -19,6 +22,8 @@ if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
fi
set -e # Exit on most errors
@@ -29,8 +34,12 @@ cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
-chown -R root:root .
-chmod -R u+w,go+r-w,a-s .
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
# The system expects everything to live in /var/cfengine generally
# Its configuration is maintained in a version control system
@@ -44,23 +53,12 @@ CXXFLAGS="$SLKCFLAGS" \
--datadir=/usr/doc \
--libdir=/usr/lib \
--enable-shared=yes \
+ --enable-static=no \
--with-docs
make
make install-strip DESTDIR=$PKG
-# Create the server directory (may not be needed)
-mkdir -p $PKG/var/cfengine/masterfiles
-
-# Include example config files
-mkdir -p $PKG/etc/rc.d
-cat $CWD/rc.cfengine > $PKG/etc/rc.d/rc.cfengine.new
-mkdir -p $PKG/var/cfengine/inputs
-cat $CWD/config/update.conf > $PKG/var/cfengine/inputs/update.conf.new
-cat $CWD/config/cfagent.conf > $PKG/var/cfengine/inputs/cfagent.conf.new
-cat $CWD/config/cfservd.conf > $PKG/var/cfengine/inputs/cfservd.conf.new
-cat $CWD/config/cfrun.hosts > $PKG/var/cfengine/inputs/cfrun.hosts.new
-
( cd $PKG/usr/man || exit 1
find . -type f -exec gzip -9 {} \;
for i in $(find . -type l) ;
@@ -68,27 +66,51 @@ cat $CWD/config/cfrun.hosts > $PKG/var/cfengine/inputs/cfrun.hosts.new
done
)
-rm -f $PKG/usr/info/dir
-gzip -9 $PKG/usr/info/*.info*
+# Create basic work dirs
+for dir in bin inputs outputs masterfiles ; do
+ mkdir -p $PKG/var/$PRGNAM/$dir
+done
+
+# Include example start/stop/restart/reload scripts
+mkdir -p $PKG/etc/rc.d
+cat $CWD/rc.cfengine > $PKG/etc/rc.d/rc.cfengine.new
+cat $CWD/rc.cfenvd > $PKG/etc/rc.d/rc.cfenvd.new
+cat $CWD/rc.cfservd > $PKG/etc/rc.d/rc.cfservd.new
+# Link the cfengine name to execd for compatibility
+( cd $PKG/etc/rc.d ; ln -sf rc.cfengine rc.cfexecd )
+
+# Include example config files
+cat $CWD/config/update.conf > $PKG/var/$PRGNAM/inputs/update.conf.new
+cat $CWD/config/cfagent.conf > $PKG/var/$PRGNAM/inputs/cfagent.conf.new
+cat $CWD/config/cfservd.conf > $PKG/var/$PRGNAM/inputs/cfservd.conf.new
+cat $CWD/config/cfrun.hosts > $PKG/var/$PRGNAM/inputs/cfrun.hosts.new
+
+# Try to be a bit more compatible to some other distros versions
+( cd $PKG/etc
+ ln -sf /var/cfengine/inputs cfengine
+ ln -sf /var/cfengine/inputs cfengine2
+ cd $PKG/var ; ln -sf cfengine cfengine2
+)
+
+# Following link is for backwards compatibility
+mkdir -p $PKG/var/$PRGNAM/bin
+( cd $PKG/var/cfengine/bin ; ln -sf /usr/sbin/cfagent . )
# Put docs in the versioned directory
mv $PKG/usr/doc/$PRGNAM $PKG/usr/doc/$PRGNAM-$VERSION
cp -a [A-Z][A-Z]* ChangeLog $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.SBo
+cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README$TAG
find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \;
+# Compress info pages and remove the package's dir file
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*.info*
+
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.tgz
-
-# Clean up the extra stuff
-if [ "$1" = "--cleanup" ]; then
- rm -rf $TMP/$PRGNAM-$VERSION
- rm -rf $PKG
-fi
-