commit:     acc3f832aed849c416e636b15369fe577be71f5b
Author:     Aaron W. Swenson <titanofold <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  6 13:41:09 2017 +0000
Commit:     Aaron Swenson <titanofold <AT> gentoo <DOT> org>
CommitDate: Fri Oct  6 13:41:09 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=acc3f832

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

 dev-db/postgis/postgis-2.1.8-r1.ebuild |   3 +-
 dev-db/postgis/postgis-9999.ebuild     | 253 ++++++---------------------------
 2 files changed, 41 insertions(+), 215 deletions(-)

diff --git a/dev-db/postgis/postgis-2.1.8-r1.ebuild 
b/dev-db/postgis/postgis-2.1.8-r1.ebuild
index bf96c0f4468..7b1340edd96 100644
--- a/dev-db/postgis/postgis-2.1.8-r1.ebuild
+++ b/dev-db/postgis/postgis-2.1.8-r1.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
-POSTGRES_COMPAT=( 9.{1,2,3,4,5} )
+POSTGRES_COMPAT=( 9.{2,3,4} )
 
 inherit autotools eutils versionator
 
@@ -23,7 +23,6 @@ RDEPEND="
                        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

diff --git a/dev-db/postgis/postgis-9999.ebuild 
b/dev-db/postgis/postgis-9999.ebuild
index b1c5d4778d0..c112970c706 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";
 }

Reply via email to