diff options
Diffstat (limited to 'app/admin/puppet/puppet.SlackBuild')
-rw-r--r-- | app/admin/puppet/puppet.SlackBuild | 52 |
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 |