# Maintainer: Markus M. May <triplem@tu.archserver.org>
# Contributor: Phillip Smith <fukawi2@archserver.org>
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>

pkgbase=('postgresql')
pkgname=('postgresql-libs' 'postgresql')
pkgver=8.4.5
pkgrel=1
arch=('i686' 'x86_64')
url="http://www.postgresql.org"
license=('BSD')
makedepends=('libxml2' 'python')
options=('!makeflags')
source=("ftp://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2"
        'rc.postgresql'
        'confd.postgresql'
        'postgresql.pam')
md5sums=('391a3f2eddd6fa78bb6ceba9955ffa5f'
         '7cfbde47e5883d6ddd2406817916237e'
         '09460fbfd3039bd9a0e753d5df360b5c'
         '96f82c38f3f540b53f3e5144900acf17')

# If changing this, update postgresql.install file too
_PKG_MAJOR_VER='8.4'

build() {
  cd ${srcdir}/${pkgbase}-${pkgver} || return 1

  ./configure \
    --prefix=/usr \
    --mandir=/usr/share/man \
    --with-libxml \
    --with-docdir=/usr/share/doc \
    --with-openssl \
    --with-python \
    --with-pam \
    --with-perl \
    --with-system-tzdata=/usr/share/zoneinfo \
    --datadir=/usr/share/postgresql \
    --enable-thread-safety || return 1

  # build
  make || return 1

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

  cd src/include || return 1
  make || return 1

  # build adminpack
  cd ../../contrib/adminpack || return 1
  make || return 1
}

package_postgresql-libs() {
  pkgdesc="Libraries for use with PostgreSQL"
  depends=('openssl>=0.9.8b' 'readline>=6.0')

  cd ${srcdir}/${pkgbase}-${pkgver} || return 1

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

  cd src/include || return 1

  mkdir -p ${pkgdir}/usr/include/{libpq,postgresql/internal/libpq} || return 1

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

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

	# remove the following file, because it is in the main package
	rm -f ${pkgdir}/usr/share/postgresql/pg_service.conf.sample

  install -Dm644 ../../COPYRIGHT ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
}


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

  cd ${srcdir}/${pkgbase}-${pkgver} || return 1

  # install
  make DESTDIR=${pkgdir} install || return 1

  # install adminpack
  cd contrib/adminpack || return 1
  make DESTDIR=${pkgdir} install || return 1;

  # clean up unneeded installed items
  rm -rf ${pkgdir}/usr/include/postgresql/internal || return 1
  rm -rf ${pkgdir}/usr/include/libpq || return 1
  # the following packages are already in the libs
  rm -rf ${pkgdir}/usr/include/postgresql/informix || return 1  
  rm -f ${pkgdir}/usr/lib/libecpg* || return 1
  rm -f ${pkgdir}/usr/lib/libpgtypes* || return 1
  rm -f ${pkgdir}/usr/lib/libpq* || return 1
  # the below line is expected to produce an error; fix this one day
  #rm -f ${pkgdir}/usr/include/*
  ( PATH='/bin:/usr/bin' ; find ${pkgdir}/usr/include -maxdepth 1 -type f -execdir rm {} + ) || return 1
  rm -f ${pkgdir}/usr/bin/pg_config || return 1
  # the following packages are already in the libs
  rm -f ${pkgdir}/usr/bin/ecpg || return 1

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

  # install conf file
  install -D -m644 ${srcdir}/confd.postgresql ${pkgdir}/etc/conf.d/postgresql || return 1

  install -D -m644 ${srcdir}/postgresql.pam ${pkgdir}/etc/pam.d/postgresql || return 1

  chown root:root ${pkgdir}/usr/share/doc/postgresql/html/*
}

# vim:set ts=2 sw=2 et:
