summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron W. Swenson <titanofold@gentoo.org>2017-10-06 09:41:09 -0400
committerAaron W. Swenson <titanofold@gentoo.org>2017-10-06 09:41:09 -0400
commitacc3f832aed849c416e636b15369fe577be71f5b (patch)
treeb0e5a7c115c24d42a215132619434a6faf5101e9 /dev-db/postgis/postgis-9999.ebuild
parentdev-ml/dns-lwt-unix: udpate to opam.eclass (diff)
downloadgentoo-acc3f832aed849c416e636b15369fe577be71f5b.tar.gz
gentoo-acc3f832aed849c416e636b15369fe577be71f5b.tar.bz2
gentoo-acc3f832aed849c416e636b15369fe577be71f5b.zip
dev-db/postgis: Fix dependency, live ebuild update
Removed the dependency on PostgreSQL 9.1 Live ebuild updated to use the postgres-multi eclass, removed dependency on EOL’d PostgreSQL, add 10. Package-Manager: Portage-2.3.6, Repoman-2.3.1
Diffstat (limited to 'dev-db/postgis/postgis-9999.ebuild')
-rw-r--r--dev-db/postgis/postgis-9999.ebuild253
1 files changed, 40 insertions, 213 deletions
diff --git a/dev-db/postgis/postgis-9999.ebuild b/dev-db/postgis/postgis-9999.ebuild
index b1c5d4778d0d..c112970c7060 100644
--- a/dev-db/postgis/postgis-9999.ebuild
+++ b/dev-db/postgis/postgis-9999.ebuild
@@ -2,9 +2,10 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=6
-POSTGRES_COMPAT=( 9.{1,2,3,4,5} )
+POSTGRES_COMPAT=( 9.{3..6} 10 )
+POSTGRES_USEDEP="server"
-inherit autotools eutils versionator subversion
+inherit autotools eutils postgres-multi subversion versionator
MY_PV=$(replace_version_separator 3 '')
MY_P="${PN}-${MY_PV}"
@@ -20,19 +21,13 @@ KEYWORDS=""
IUSE="doc gtk static-libs test"
RDEPEND="
- || (
- dev-db/postgresql:9.5[server]
- dev-db/postgresql:9.4[server]
- dev-db/postgresql:9.3[server]
- dev-db/postgresql:9.2[server]
- dev-db/postgresql:9.1[server]
- )
- dev-libs/json-c
- dev-libs/libxml2:2
- >=sci-libs/geos-3.4.2
- >=sci-libs/proj-4.6.0
- >=sci-libs/gdal-1.10.0:=
- gtk? ( x11-libs/gtk+:2 )
+ ${POSTGRES_DEP}
+ dev-libs/json-c
+ dev-libs/libxml2:2
+ >=sci-libs/geos-3.4.2
+ >=sci-libs/proj-4.6.0
+ >=sci-libs/gdal-1.10.0:=
+ gtk? ( x11-libs/gtk+:2 )
"
DEPEND="${RDEPEND}
@@ -46,9 +41,6 @@ DEPEND="${RDEPEND}
test? ( dev-util/cunit )
"
-# TODO can be read from Version.config
-PGIS="2.2"
-
REQUIRED_USE="test? ( doc )"
# Needs a running psql instance, doesn't work out of the box
@@ -56,232 +48,67 @@ RESTRICT="test"
MAKEOPTS+=' -j1'
-# These modules are built using the same *FLAGS that were used to build
-# dev-db/postgresql. The right thing to do is to ignore the current
-# *FLAGS settings.
-QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
-
-postgres_check_slot() {
- if ! declare -p POSTGRES_COMPAT &>/dev/null; then
- die 'POSTGRES_COMPAT not declared.'
- fi
-
-# Don't die because we can't run postgresql-config during pretend.
-[[ "$EBUILD_PHASE" = "pretend" \
- && -z "$(which postgresql-config 2> /dev/null)" ]] && return 0
-
- local res=$(echo ${POSTGRES_COMPAT[@]} \
- | grep -c $(postgresql-config show 2> /dev/null) 2> /dev/null)
-
- if [[ "$res" -eq "0" ]] ; then
- eerror "PostgreSQL slot must be set to one of: "
- eerror " ${POSTGRES_COMPAT[@]}"
- return 1
- fi
-
- return 0
-}
-
-pkg_setup() {
- postgres_check_slot || die
- export PGSLOT="$(postgresql-config show)"
-}
-
src_prepare() {
-# epatch "${FILESDIR}/${PN}-2.1-ldflags.patch"
-# epatch "${FILESDIR}/${PN}-2.0-arflags.patch"
-# epatch "${FILESDIR}/${PN}-2.1.4-pkgconfig-json.patch"
+ source "${S}"/Version.config
+ export PGIS="${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}"
+
+ # These modules are built using the same *FLAGS that were used to build
+ # dev-db/postgresql. The right thing to do is to ignore the current
+ # *FLAGS settings.
+ export QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
eapply_user
local AT_M4DIR="macros"
eautoreconf
+ postgres-multi_src_prepare
}
src_configure() {
local myargs=""
use gtk && myargs+=" --with-gui"
- econf \
- --with-pgconfig="/usr/lib/postgresql-${PGSLOT}/bin/pg_config" \
- ${myargs}
+ postgres-multi_foreach econf ${myargs}
}
src_compile() {
- emake
- emake -C topology
+ postgres-multi_foreach emake
+ postgres-multi_foreach emake -C topology
if use doc ; then
- emake comments
- emake cheatsheets
- emake -C doc html
+ postgres-multi_foreach emake comments
+ postgres-multi_foreach emake cheatsheets
+ postgres-multi_forbest emake -C doc html
fi
}
src_install() {
- emake DESTDIR="${D}" install
- use doc && emake DESTDIR="${D}" comments-install
- emake -C topology DESTDIR="${D}" install
- dobin ./utils/postgis_restore.pl
+ postgres-multi_foreach emake DESTDIR="${D}" install
+ postgres-multi_foreach emake -C topology DESTDIR="${D}" install
+ postgres-multi_forbest dobin ./utils/postgis_restore.pl
dodoc CREDITS TODO loader/README.* doc/*txt
- use doc && dohtml -r doc/html/*
-
docinto topology
dodoc topology/{TODO,README}
- insinto /etc
- doins "${FILESDIR}/postgis_dbs"
+ if use doc ; then
+ postgres-multi_foreach emake DESTDIR="${D}" comments-install
+
+ docinto html
+ postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
+
+ docinto html/images
+ postgres-multi_forbest dodoc doc/html/images/*
+ fi
use static-libs || find "${ED}" -name '*.a' -delete
}
pkg_postinst() {
+ ebegin "Refreshing PostgreSQL symlinks"
postgresql-config update
+ eend $?
- elog "To finish installing or updating PostGIS edit:"
- elog " ${EROOT%/}/etc/postgis_dbs"
- elog
- elog "Then, run:"
- elog " emerge --config =${CATEGORY}/${PF}"
-}
-
-pkg_config(){
- source "${EROOT%/}/etc/conf.d/postgresql-${PGSLOT}"
- source "${EROOT%/}/etc/postgis_dbs"
- local postgis_path="${EROOT%/}/usr/share/postgresql-${PGSLOT}/contrib/postgis-${PGIS}"
-
- if [[ -n ${configured} ]] ; then
- einfon "Password for PostgreSQL user '${pguser}': "
- read -s PGPASSWORD
- export PGPASSWORD
- echo
- else
- eerror "You must edit:"
- eerror " ${EROOT%/}/etc/postgis_dbs"
- eerror "Before running 'emerge --config =${CATEGORY}/${PF}'"
- eerror
- die "Edit postgis_dbs"
- fi
-
- # The server we work with must be the same slot we built against.
- local server_match
- server_match=$(psql -U ${pguser} -d postgres -p ${PGPORT} \
- -Aqwtc 'SELECT version()' 2> /dev/null | grep -c "PostgreSQL ${PGSLOT}")
- if [[ $? = 0 ]] ; then
- if [[ $server_match -ne 1 ]] ; then
- unset PGPASSWORD
- eerror "Server version must be ${PGSLOT}.x"
- die "Server version isn't ${PGSLOT}.x"
- fi
- else
- unset PGPASSWORD
- eerror "Is the server running?"
- die "Couldn't connect to server."
- fi
-
- local retval
- safe_exit() {
- unset PGPASSWORD
- sed -e 's/\(configured\)/#\1/' -i "${EROOT%/}/etc/postgis_dbs"
- eend $retval
- eerror "All actions could not be performed."
- eerror "Read above to see what failed."
- eerror "Once you fix the issue, you'll need to edit:"
- eerror " ${EROOT%/}/etc/postgis_dbs"
- eerror "As some things may have succeeded."
- eerror
- die "All actions could not be performed"
- }
-
- local db
- for db in ${databases[@]} ; do
- ebegin "Performing CREATE LANGUAGE on ${db}"
- createlang -U ${pguser} -p ${PGPORT} plpgsql ${db}
- retval=$?
- # In this case, only error code 1 is fatal
- [[ $retval == 1 ]] && safe_exit || eend 0
-
- ebegin "Enabling PostGIS on ${db}"
- psql -q -U ${pguser} -p ${PGPORT} -d ${db} \
- -f "${postgis_path}/postgis.sql"
- retval=$?
- [[ $retval == 0 ]] && eend 0 || safe_exit
- done
-
- for db in ${templates[@]} ; do
- ebegin "Creating template database '${db}'"
- createdb -p ${PGPORT} -U ${pguser} -O ${pguser} -T ${from_template} \
- ${db} "PostGIS Template"
- retval=$?
- [[ $retval != 0 ]] && safe_exit
-
- psql -q -U ${pguser} -p ${PGPORT} -c \
- "UPDATE pg_database \
- SET datistemplate = TRUE, datallowconn = TRUE \
- WHERE datname = '${db}'"
- retval=$?
- [[ $retval != 0 ]] && safe_exit
-
- createlang -U ${pguser} -p ${PGPORT} plpgsql ${db}
- retval=$?
- # In this case, only error code 1 is fatal
- [[ $retval == 1 ]] && safe_exit
-
- psql -q -U ${pguser} -p ${PGPORT} -d ${db} \
- -f "${postgis_path}/postgis.sql"
- retval=$?
- [[ $retval == 0 ]] && eend 0 || safe_exit
- done
-
- for db in ${epsg_databases[@]} ; do
- ebegin "Adding EPSG to ${db}"
- psql -q -U ${pguser} -p ${PGPORT} -d ${db} \
- -f "${postgis_path}/spatial_ref_sys.sql"
- retval=$?
- [[ $retval == 0 ]] && eend 0 || safe_exit
- done
-
- for db in ${comment_databases[@]} ; do
- ebegin "Adding comments on ${db}"
- local comment_file
- for comment_file in "${postgis_path}"/*_comments.sql ; do
- psql -q -U ${pguser} -p ${PGPORT} -d ${db} -f "${comment_file}"
- retval=$?
- [[ $retval == 0 ]] && continue || safe_exit
- done
- eend 0
- done
-
- for db in ${upgrade_from_1_3[@]} ; do
- ebegin "Upgrading from PostGIS 1.3 to ${PGIS} on ${db}"
- psql -q -U ${pguser} -p ${PGPORT} -d ${db} \
- -f "${postgis_path}/postgis_upgrade_13_to_${PGIS//.}.sql"
- retval=$?
- [[ $retval == 0 ]] && eend 0 || safe_exit
- done
-
- for db in ${upgrade_from_1_4[@]} ; do
- ebegin "Upgrading from PostGIS 1.4 to ${PGIS} on ${db}"
- psql -q -U ${pguser} -p ${PGPORT} -d ${db} \
- -f "${postgis_path}/postgis_upgrade_14_to_${PGIS//.}.sql"
- retval=$?
- [[ $retval == 0 ]] && eend 0 || safe_exit
- done
-
- for db in ${upgrade_from_1_5[@]} ; do
- ebegin "Minor upgrade for PostGIS ${PGIS} on ${db}"
- psql -q -U ${pguser} -p ${PGPORT} -d ${db} \
- -f "${postgis_path}/postgis_upgrade_${PGIS//.}_minor.sql"
- retval=$?
- [[ $retval == 0 ]] && eend 0 || safe_exit
- done
-
- # Clean up and make it so the user has to edit postgis_dbs again that
- # way this script won't step on any toes due to user error.
- unset PGPASSWORD
- sed -e 's/\(configured\)/#\1/' -i "${EROOT%/}/etc/postgis_dbs"
- einfo "PostgreSQL ${PGSLOT} is now PostGIS enabled."
- einfo
- einfo "Currently, only one PostgreSQL slot at a time can be PostGIS enabled."
+ elog "To finish installing PostGIS, follow the directions detailed at:"
+ elog "http://postgis.net/docs/manual-dev/postgis_installation.html#create_new_db_extensions"
}