aboutsummaryrefslogtreecommitdiff
path: root/app/admin/puppet/puppet.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'app/admin/puppet/puppet.SlackBuild')
-rw-r--r--app/admin/puppet/puppet.SlackBuild52
1 files changed, 50 insertions, 2 deletions
diff --git a/app/admin/puppet/puppet.SlackBuild b/app/admin/puppet/puppet.SlackBuild
index 85de6dc9..aa4ef57f 100644
--- a/app/admin/puppet/puppet.SlackBuild
+++ b/app/admin/puppet/puppet.SlackBuild
@@ -15,7 +15,7 @@
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
#
# slackbuild for puppet, by Silvio Rhatto
-# requires: facter
+# requires: facter openrc
# tested: puppet-0.24.8
# model: generic.mkSlackBuild $Rev: 805 $
#
@@ -34,7 +34,7 @@ PKG_NAME="puppet"
ARCH=${ARCH:=i486}
SRC_VERSION=${VERSION:=0.24.8}
PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')"
-BUILD=${BUILD:=1rha}
+BUILD=${BUILD:=2rha}
SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME
TMP=${TMP:=/tmp}
PKG=${PKG:=$TMP/package-$PKG_NAME}
@@ -161,6 +161,7 @@ cd "$PKG_SRC"
# Build and install package
ruby install.rb --destdir=$PKG || exit $ERROR_INSTALL
+mkdir -p /var/run/puppet /etc/puppet
# Strip binaries
( cd "$PKG"
@@ -170,6 +171,10 @@ ruby install.rb --destdir=$PKG || exit $ERROR_INSTALL
xargs strip --strip-unneeded 2> /dev/null
)
+# Copy init scripts
+mkdir -p $PKG/etc/rc.d
+cp $CWD/rc.* $PKG/etc/rc.d/
+
# Install documentation
DOCS="CHANGELOG COPYING LICENSE README README.rst Rakefile"
mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR
@@ -203,6 +208,49 @@ puppet:
puppet:
EODESC
+# Add a post-installation script (doinst.sh)
+mkdir -p "$PKG/install" || exit $ERROR_MKDIR
+cat << EOSCRIPT > "$PKG/install/doinst.sh"
+config() {
+ NEW="\$1"
+ OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)"
+ OLD="\$(dirname \$NEW)/\$(basename \$OLD .sample)"
+ OLD="\$(dirname \$NEW)/\$(basename \$OLD .dist)"
+
+ # If there's no config file by that name, mv it over:
+ if [ ! -r \$OLD ]; then
+ mv \$NEW \$OLD
+ elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm \$NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+mkgroup() {
+ GROUP="\$1"
+ if ! grep -qe "^\$GROUP:" etc/group; then
+ echo Creating group \$GROUP...
+ chroot . /usr/sbin/groupadd \$GROUP
+ fi
+}
+
+mkuser() {
+ USER="\$1"
+ if [ ! -z "\$2" ]; then
+ GROUP="\$2"
+ else
+ GROUP="\$USER"
+ fi
+ if ! grep -qe "^\$USER:" etc/passwd; then
+ echo Creating user \$USER...
+ chroot . /usr/sbin/useradd \$USER -g \$GROUP
+ fi
+}
+
+config etc/rc.d/rc.puppet.new ; config etc/rc.d/rc.puppetmaster.new; mkgroup puppet; mkuser puppet; chown puppet.puppet /var/run/puppet
+EOSCRIPT
+
# Build the package
cd "$PKG"
mkdir -p $REPOS/$SLACKBUILD_PATH