summaryrefslogtreecommitdiff
path: root/system/postgresql/postgresql.SlackBuild
blob: 1db01e2f1b209d396bf667d4e282d74fb3210dd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/sh

## Slackware build script for PostgreSQL
## $Revision: a8b7a8527f9a $
## $Date: 2008/06/11 08:11:50 $
## 
## Copyright 2007-2008 Adis Nezirovic <adis _at_ linux.org.ba>
## Licensed under GNU GPL v2

# Modified by the SlackBuilds.org Project

PRGNAM=postgresql
VERSION=8.3.5
ARCH=${ARCH:-i486}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}

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 "  Must have a postgres group to run this script."
  echo "    # groupadd -g 209 postgres"
  echo "  Or something similar."
  exit 1
elif ! grep ^postgres: /etc/passwd 2>&1 > /dev/null; then
  echo "  Must have a postgres user to run this script."
  echo "    # useradd -u 209 -g postgres -d /var/lib/pgsql postgres"
  echo "  Or something similar."
  exit 1
fi

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 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 \
  --with-openssl \
  --with-tcl \
  --with-perl \
  --with-python \
  --with-ldap \
  --with-libxml \
  --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.
# If you haven't user tsearch2 previously you can disable
# compatibility layer by running:
#   TSEARCH2_COMPAT=no ./postgresql.SlackBuild
if [ "$TSEARCH2_COMPAT" != "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

gzip -9 $PKG/usr/man/man?/*

mv $PKG/usr/doc/$PRGNAM $PKG/usr/doc/$PRGNAM-$VERSION
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
chown -R root:root $PKG/usr/doc

# 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

# 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
cat $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.tgz