summaryrefslogtreecommitdiff
path: root/extra/postgresql/PKGBUILD
blob: e89eb4d9eb630095140b4d46280d9f5c54e67a6f (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
131
132
133
134
135
136
137
# $Id: PKGBUILD 122182 2011-05-02 17:54:57Z dan $
# Maintainer: Dan McGee <dan@archlinux.org>

pkgbase=postgresql
pkgname=('postgresql-libs' 'postgresql-docs' 'postgresql')
pkgver=9.0.4
pkgrel=3
arch=('i686' 'x86_64' 'mips64el')
url="http://www.postgresql.org"
license=('custom:PostgreSQL')
makedepends=('libxml2' 'python2' 'perl')
source=(ftp://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2 \
        postgresql postgresql.confd build.patch postgresql.pam postgresql.logrotate)
install=postgresql.install

build() {
  cd "${srcdir}/${pkgbase}-${pkgver}"

  # patch to remove regress/test make target (won't build with it present)
  patch -Np1 -i ../build.patch

  # configure
  ./configure --prefix=/usr --mandir=/usr/share/man --with-libxml \
  --with-openssl --with-perl \
  --with-python PYTHON=/usr/bin/python2 --with-pam \
  --with-system-tzdata=/usr/share/zoneinfo --enable-nls \
  --datadir=/usr/share/postgresql --enable-thread-safety

  sed -i -e '/interfaces/d' src/Makefile

  # build
  make world

  # build libs
  for dir in src/interfaces src/bin/pg_config; do
    pushd ${dir}
    make
    popd
  done
}

package_postgresql-libs() {
  pkgdesc="Libraries for use with PostgreSQL"
  depends=('openssl>=1.0.0')

  cd "${srcdir}/${pkgbase}-${pkgver}"

  # install license
  install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-libs/LICENSE"

  # install libs
  for dir in src/interfaces src/bin/pg_config; do
    pushd ${dir}
    make DESTDIR="${pkgdir}" install
    popd
  done

  install -D -m644 doc/src/sgml/man1/pg_config.1 "${pkgdir}/usr/share/man/man1/pg_config.1"

  cd src/include

  mkdir -p "${pkgdir}"/usr/include/{libpq,postgresql/internal/libpq}

  # these headers are needed by the public headers of the interfaces
  install -m644 pg_config.h "${pkgdir}/usr/include/"
  install -m644 pg_config_os.h "${pkgdir}/usr/include/"
  install -m644 postgres_ext.h "${pkgdir}/usr/include/"
  install -m644 libpq/libpq-fs.h "${pkgdir}/usr/include/libpq/"
  install -m644 pg_config_manual.h "${pkgdir}/usr/include/"

  # these headers are needed by the not-so-public headers of the interfaces
  install -m644 c.h "${pkgdir}/usr/include/postgresql/internal/"
  install -m644 port.h "${pkgdir}/usr/include/postgresql/internal/"
  install -m644 postgres_fe.h "${pkgdir}/usr/include/postgresql/internal/"
  install -m644 libpq/pqcomm.h "${pkgdir}/usr/include/postgresql/internal/libpq/"
}

package_postgresql-docs() {
  pkgdesc="HTML documentation for PostgreSQL"
  options=(docs)

  cd "${srcdir}/${pkgbase}-${pkgver}"

  # install license
  install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-docs/LICENSE"

  make -C doc/src/sgml DESTDIR="${pkgdir}" install-html
  chown -R root:root "${pkgdir}/usr/share/doc/postgresql/html/"
}

package_postgresql() {
  pkgdesc="A sophisticated object-relational DBMS"
  backup=('etc/conf.d/postgresql' 'etc/pam.d/postgresql' 'etc/logrotate.d/postgresql')
  depends=("postgresql-libs>=${pkgver}" 'libxml2' 'readline>=6.0')
  optdepends=('python2: for PL/Python support'
              'perl: for PL/Perl support')
  provides=('postgresql-client')
  conflicts=('postgresql-client')

  cd "${srcdir}/${pkgbase}-${pkgver}"

  # install
  make DESTDIR="${pkgdir}" install
  make -C contrib DESTDIR="${pkgdir}" install
  make -C doc/src/sgml DESTDIR="${pkgdir}" install-man
  # we don't want this, it is in the -libs package
  make -C src/bin/pg_config DESTDIR="${pkgdir}" uninstall
  rm "${pkgdir}/usr/share/man/man1/pg_config.1"

  # install license
  install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE"

  # clean up unneeded installed items
  rm -rf "${pkgdir}/usr/include/postgresql/internal"
  rm -rf "${pkgdir}/usr/include/libpq"
  find "${pkgdir}/usr/include" -maxdepth 1 -type f -execdir rm {} +

  # install launch script
  install -D -m755 "${srcdir}/postgresql" "${pkgdir}/etc/rc.d/postgresql"

  # install conf file
  install -D -m644 ${srcdir}/postgresql.confd \
    "${pkgdir}/etc/conf.d/postgresql"

  install -D -m644 ${srcdir}/postgresql.pam \
    "${pkgdir}/etc/pam.d/postgresql"

  install -D -m644 ${srcdir}/postgresql.logrotate \
    "${pkgdir}/etc/logrotate.d/postgresql"
}

md5sums=('80390514d568a7af5ab61db1cda27e29'
         'eacf91f987d230f2dc2d040618ea1817'
         'd63a05943cf0a2726aa2070f3033c569'
         '4d74f4227dc5e12bf95b3490758d86c9'
         '96f82c38f3f540b53f3e5144900acf17'
         'd28e443f9f65a5712c52018b84e27137')