summaryrefslogtreecommitdiff
blob: 89ebc6e8f6fda0eb441da0497047745e4f3173c6 (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
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/libpqxx/libpqxx-3.1-r2.ebuild,v 1.4 2011/10/19 00:20:18 jer Exp $

EAPI="4"

inherit eutils

KEYWORDS="~alpha amd64 hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd"

DESCRIPTION="C++ client API for PostgreSQL. The standard front-end for writing C++ programs that use PostgreSQL."
SRC_URI="http://pqxx.org/download/software/${PN}/${P}.tar.gz"
HOMEPAGE="http://pqxx.org/development/libpqxx/"
LICENSE="BSD"
SLOT="0"
IUSE="doc"

DEPEND="dev-db/postgresql-base"
RDEPEND="${DEPEND}"

PROPERTIES="interactive"

src_configure() {
	econf --enable-shared
}

src_install () {
	emake DESTDIR="${D}" install

	dodoc AUTHORS ChangeLog NEWS README*
	use doc && dohtml -r doc/html/*
}

src_test() {
	ewarn "The tests need a running PostgreSQL server version 8.4.x or older"
	ewarn "and an existing database."
	ewarn "Test requires PGDATABASE and PGUSER to be set at a minimum."
	ewarn "Optionally, set PGPORT and PGHOST."
	ewarn "Define them at the command line or in:"
	ewarn "    ${EROOT%/}/etc/libpqxx_test_env"
	ewarn "Make sure 'standard_conforming_strings' is set to off in postgresql.conf."

	if [[ -z $PGDATABASE || -z $PGUSER ]] ; then
		if [[ -f ${EROOT%/}/etc/libpqxx_test_env ]] ; then
			source "${EROOT%/}/etc/libpqxx_test_env"
			[[ -n $PGDATABASE ]] && export PGDATABASE
			[[ -n $PGHOST ]] && export PGHOST
			[[ -n $PGPORT ]] && export PGPORT
			[[ -n $PGUSER ]] && export PGUSER
		fi

		# In case the file wasn't written properly or doesn't exist
		if [[ -z $PGDATABASE || -z $PGUSER ]] ; then
			echo -n "Database (Default: $(whoami)): "
			read PGDATABASE
			[[ -n $PGDATABASE ]] && export PGDATABASE
			echo -n "Host (Default: Unix socket): "
			read PGHOST
			[[ -n $PGHOST ]] && export PGHOST
			echo -n "Port (Default: 5432): "
			read PGPORT
			[[ -n $PGPORT ]] && export PGPORT
			echo -n "User (Default: $(whoami)): "
			read PGUSER
			[[ -n $PGUSER ]] && export PGUSER
		fi
	fi

	local server_version
	server_version=$(psql -Aqwtc 'SELECT version();' 2> /dev/null)
	if [[ $? = 0 ]] ; then
		server_version=$(echo ${server_version} | cut -d " " -f 2 | cut -d "." -f -2 | tr -d .)
		if [[ $server_version < 90 ]] ; then
			cd "${S}/test"
			emake check
		else
			eerror "Server version must be 8.4.x or below."
			die "Server version isn't 8.4.x or below"
		fi
	else
		eerror "Is the server running?"
		eerror "Check that the role and database exist, and authentication method is set to"
		eerror "trust for:"
		eerror "    Role: ${PGUSER}"
		eerror "    Database: ${PGDATABASE}"
		die "Couldn't connect to server."
	fi
}