slackbuilds_ponce/system/postgresql/postgresql.SlackBuild
Robby Workman e921af5412 system/postgresql: set perms on init script.
Use mode 0755 by default on rc.postgresql, but if the script
    already exists on the system when the package is installed
    or upgraded, the existing permissions will be kept.

  Thanks to Don Allen for the problem report.

  For full context, see:
  http://lists.slackbuilds.org/pipermail/slackbuilds-users/2010-April/005405.html
2010-05-15 10:25:28 +02:00

140 lines
3.8 KiB
Bash

#!/bin/sh
## Slackware build script for PostgreSQL
## $Revision: 5548380e2466 $
## $Date: 2009/09/09 17:37:50 $
##
## Copyright 2007-2009 Adis Nezirovic <adis _at_ linux.org.ba>
## Licensed under GNU GPL v2
# Modified by the SlackBuilds.org Project
PRGNAM=postgresql
VERSION=8.4.2
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PG_UID=${PG_UID:-209}
PG_GID=${PG_GID:-209}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
# Bail out if user or group isn't valid on your system
# For slackbuilds.org, assigned postgres uid/gid are 209/209
# See http://slackbuilds.org/uid_gid.txt
# Other popular choice is 26/26
if ! grep ^postgres: /etc/group 2>&1 > /dev/null; then
echo " You must have a postgres group to run this script."
echo " # groupadd -g $PG_GID postgres"
exit 1
elif ! grep ^postgres: /etc/passwd 2>&1 > /dev/null; then
echo " You must have a postgres user to run this script."
echo " # useradd -u $PG_UID -g $PG_GID -d /var/lib/pgsql postgres"
exit 1
fi
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
fi
set -e # Exit on any and all errors
rm -rf $TMP/$PRGNAM-$VERSION $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
chown -R root:root .
chmod -R a-s,u+w,go+r-w .
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--with-openssl \
--with-tcl \
--with-perl \
--with-python \
--with-ldap \
--with-libxml \
--with-libxslt \
--enable-thread-safety \
--build=$ARCH-slackware-linux
make
make install-strip DESTDIR=$PKG
# adminpack extension for pgAdmin
cd contrib/adminpack
make
make install-strip DESTDIR=$PKG
cd $TMP/$PRGNAM-$VERSION
# Since version 8.3 tsearch2 is directly supported by PostgreSQL
# This contrib module is now a compatibility layer.
# You can enable it by with:
# TSEARCH2_COMPAT=yes ./postgresql.SlackBuild
if ! [ "${TSEARCH2_COMPAT:-no}" == "no" ]; then
cd contrib/tsearch2
make
make install-strip DESTDIR=$PKG
cd $TMP/$PRGNAM-$VERSION
fi
# Some business oriented applications use this extension
cd contrib/pgcrypto
make
make install-strip DESTDIR=$PKG
cd $TMP/$PRGNAM-$VERSION
( cd $PKG/usr/man || exit 1
find . -type f -exec gzip -9 {} \;
for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
)
cp -a COPYRIGHT HISTORY README doc/* $PKG/usr/doc/$PRGNAM-$VERSION/
rm -rf $PKG/usr/doc/$PRGNAM-$VERSION/{man.tar.gz,man1,manl,man7,postgres.tar.gz}
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/README.SBo > $PKG/usr/doc/$PRGNAM-$VERSION/README.SBo
# base database directory
# assumes you are using /var/lib/pgsql as a homedir for postgres user
mkdir -p $PKG/var/lib/pgsql/data
chown -R postgres:postgres $PKG/var/lib/pgsql
chmod 700 $PKG/var/lib/pgsql
# permissions for DATADIR should be u=rwx (0700)
chmod 700 $PKG/var/lib/pgsql/data
# Install init script
mkdir -p $PKG/etc/rc.d
cat $CWD/rc.postgresql.new > $PKG/etc/rc.d/rc.postgresql.new
chmod 0755 $PKG/etc/rc.d/rc.postgresql.new
# Install logrotate script
mkdir -p $PKG/etc/logrotate.d
cat $CWD/postgresql.logrotate > $PKG/etc/logrotate.d/postgresql.new
mkdir -p $PKG/var/log/setup
sed -e "s%@UID@%$PG_UID%" -e "s%@GID@%$PG_GID%" $CWD/setup.$PRGNAM \
> $PKG/var/log/setup/setup.$PRGNAM
chmod 755 $PKG/var/log/setup/setup.$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}