diff options
author | Aaron W. Swenson <titanofold@gentoo.org> | 2017-10-06 09:41:09 -0400 |
---|---|---|
committer | Aaron W. Swenson <titanofold@gentoo.org> | 2017-10-06 09:41:09 -0400 |
commit | acc3f832aed849c416e636b15369fe577be71f5b (patch) | |
tree | b0e5a7c115c24d42a215132619434a6faf5101e9 /dev-db/postgis/postgis-9999.ebuild | |
parent | dev-ml/dns-lwt-unix: udpate to opam.eclass (diff) | |
download | gentoo-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.ebuild | 253 |
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" } |