mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-29 13:00:32 +01:00
e921af5412
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
140 lines
3.8 KiB
Bash
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}
|