diff options
author | Aaron W. Swenson <titanofold@gentoo.org> | 2013-01-30 14:46:58 +0000 |
---|---|---|
committer | Aaron W. Swenson <titanofold@gentoo.org> | 2013-01-30 14:46:58 +0000 |
commit | 7ca504ec0dcfd556690eb338fa05713943aedece (patch) | |
tree | 316dbae2a522f67acfce7ccd6f12133d9d5411db /dev-db | |
parent | Do not install the update checker. (diff) | |
download | gentoo-2-7ca504ec0dcfd556690eb338fa05713943aedece.tar.gz gentoo-2-7ca504ec0dcfd556690eb338fa05713943aedece.tar.bz2 gentoo-2-7ca504ec0dcfd556690eb338fa05713943aedece.zip |
Version bumps. Fixes bugs 339116, 423349, and 454276.
(Portage version: 2.1.11.31/cvs/Linux x86_64, signed Manifest commit with key D1BBFDA0)
Diffstat (limited to 'dev-db')
-rw-r--r-- | dev-db/postgis/ChangeLog | 15 | ||||
-rw-r--r-- | dev-db/postgis/files/postgis-1.5-ldflags.patch | 28 | ||||
-rw-r--r-- | dev-db/postgis/files/postgis-2.0-ldflags.patch | 26 | ||||
-rw-r--r-- | dev-db/postgis/postgis-1.3.6-r2.ebuild | 206 | ||||
-rw-r--r-- | dev-db/postgis/postgis-1.4.2-r2.ebuild | 255 | ||||
-rw-r--r-- | dev-db/postgis/postgis-1.5.8.ebuild | 252 | ||||
-rw-r--r-- | dev-db/postgis/postgis-2.0.2.ebuild | 250 |
7 files changed, 1030 insertions, 2 deletions
diff --git a/dev-db/postgis/ChangeLog b/dev-db/postgis/ChangeLog index 4b38b292fcb3..2c70e2fcff4e 100644 --- a/dev-db/postgis/ChangeLog +++ b/dev-db/postgis/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for dev-db/postgis -# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-db/postgis/ChangeLog,v 1.71 2012/11/01 06:39:12 patrick Exp $ +# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/dev-db/postgis/ChangeLog,v 1.72 2013/01/30 14:46:58 titanofold Exp $ + +*postgis-2.0.2 (30 Jan 2013) +*postgis-1.5.8 (30 Jan 2013) +*postgis-1.4.2-r2 (30 Jan 2013) +*postgis-1.3.6-r2 (30 Jan 2013) + + 30 Jan 2013; Aaron W. Swenson <titanofold@gentoo.org> + +postgis-1.3.6-r2.ebuild, +postgis-1.4.2-r2.ebuild, +postgis-1.5.8.ebuild, + +files/postgis-1.5-ldflags.patch, +postgis-2.0.2.ebuild, + +files/postgis-2.0-ldflags.patch: + Version bumps. Fixes bugs 339116, 423349, and 454276. *postgis-1.5.5 (01 Nov 2012) diff --git a/dev-db/postgis/files/postgis-1.5-ldflags.patch b/dev-db/postgis/files/postgis-1.5-ldflags.patch new file mode 100644 index 000000000000..3ccbb712c2d4 --- /dev/null +++ b/dev-db/postgis/files/postgis-1.5-ldflags.patch @@ -0,0 +1,28 @@ +diff -Naurw postgis-1.5.8.orig/loader/Makefile.in postgis-1.5.8/loader/Makefile.in +--- postgis-1.5.8.orig/loader/Makefile.in 2010-09-10 20:44:05.000000000 +0000 ++++ postgis-1.5.8/loader/Makefile.in 2013-01-30 14:31:01.189692941 +0000 +@@ -79,16 +79,16 @@ + $(CC) $(CFLAGS) $(ICONV_CFLAGS) $(PGSQL_FE_CPPFLAGS) -c $< + + $(PGSQL2SHP): shpopen.o dbfopen.o safileio.o getopt.o pgsql2shp.o $(LIBLWGEOM) +- $(CC) $(CFLAGS) $^ $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) -lm -o $@ ++ $(CC) $(CFLAGS) $^ $(LDFLAGS) $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) -lm -o $@ + + $(SHP2PGSQL-CLI): stringbuffer.o shpopen.o dbfopen.o safileio.o getopt.o shp2pgsql-core.o shp2pgsql-cli.o $(LIBLWGEOM) +- $(CC) $(CFLAGS) $^ -o $@ $(ICONV_LDFLAGS) -lm ++ $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(ICONV_LDFLAGS) -lm + + shp2pgsql-gui.o: shp2pgsql-gui.c + $(CC) $(CFLAGS) $(PGSQL_FE_CPPFLAGS) $(GTK_CFLAGS) -o $@ -c shp2pgsql-gui.c + + $(SHP2PGSQL-GUI): stringbuffer.o shpopen.o dbfopen.o safileio.o shp2pgsql-core.o shp2pgsql-gui.o getopt.o $(LIBLWGEOM) $(GTK_WIN32_RES) +- $(CC) $(CFLAGS) $(GTK_WIN32_FLAGS) $^ -o $@ $(GTK_LIBS) $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) -lm ++ $(CC) $(CFLAGS) $(GTK_WIN32_FLAGS) $^ -o $@ $(LDFLAGS) $(GTK_LIBS) $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) -lm + + installdir: + @mkdir -p $(DESTDIR)$(bindir) +@@ -106,4 +106,3 @@ + + clean: + @rm -f *.o $(SHP2PGSQL-CLI) $(PGSQL2SHP) $(GTK_WIN32_RES) +- diff --git a/dev-db/postgis/files/postgis-2.0-ldflags.patch b/dev-db/postgis/files/postgis-2.0-ldflags.patch new file mode 100644 index 000000000000..f48617cd64a9 --- /dev/null +++ b/dev-db/postgis/files/postgis-2.0-ldflags.patch @@ -0,0 +1,26 @@ +diff -Naurw postgis-2.0.2.orig/loader/Makefile.in postgis-2.0.2/loader/Makefile.in +--- postgis-2.0.2.orig/loader/Makefile.in 2012-03-21 21:36:59.000000000 +0000 ++++ postgis-2.0.2/loader/Makefile.in 2013-01-29 21:44:12.566318760 +0000 +@@ -97,11 +97,11 @@ + + $(PGSQL2SHP-CLI): $(SHPLIB_OBJS) pgsql2shp-core.o pgsql2shp-cli.o $(LIBLWGEOM) + $(LIBTOOL) --mode=link \ +- $(CC) $(CFLAGS) $^ $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) $(GETTEXT_LDFLAGS) -o $@ ++ $(CC) $(CFLAGS) $^ $(LDFLAGS) $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) $(GETTEXT_LDFLAGS) -o $@ + + $(SHP2PGSQL-CLI): $(SHPLIB_OBJS) shp2pgsql-core.o shp2pgsql-cli.o $(LIBLWGEOM) + $(LIBTOOL) --mode=link \ +- $(CC) $(CFLAGS) $^ -o $@ $(GETTEXT_LDFLAGS) $(ICONV_LDFLAGS) ++ $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(GETTEXT_LDFLAGS) $(ICONV_LDFLAGS) + + shp2pgsql-gui.o: shp2pgsql-gui.c shp2pgsql-core.h shpcommon.h + $(CC) $(CFLAGS) $(GTK_CFLAGS) $(PGSQL_FE_CPPFLAGS) -o $@ -c shp2pgsql-gui.c +@@ -109,7 +109,7 @@ + $(SHP2PGSQL-GUI): $(SHPLIB_OBJS) shp2pgsql-core.o shp2pgsql-gui.o pgsql2shp-core.o $(LIBLWGEOM) $(GTK_WIN32_RES) + $(LIBTOOL) --mode=link \ + $(CC) $(CFLAGS) $(GTK_WIN32_FLAGS) $^ -o $@ \ +- $(GTK_LIBS) $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) $(GETTEXT_LDFLAGS) ++ $(LDFLAGS) $(GTK_LIBS) $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) $(GETTEXT_LDFLAGS) + + installdir: + @mkdir -p $(DESTDIR)$(bindir) diff --git a/dev-db/postgis/postgis-1.3.6-r2.ebuild b/dev-db/postgis/postgis-1.3.6-r2.ebuild new file mode 100644 index 000000000000..673108a46a0b --- /dev/null +++ b/dev-db/postgis/postgis-1.3.6-r2.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-db/postgis/postgis-1.3.6-r2.ebuild,v 1.1 2013/01/30 14:46:58 titanofold Exp $ + +EAPI="1" + +inherit eutils multilib versionator + +DESCRIPTION="Geographic Objects for PostgreSQL" +HOMEPAGE="http://postgis.net" +SRC_URI="http://download.osgeo.org/postgis/source/${P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="geos proj doc" + +RDEPEND=" || ( + dev-db/postgresql-server:8.4 + dev-db/postgresql-server:8.3 + dev-db/postgresql-server:8.2 + dev-db/postgresql-server:8.1 + dev-db/postgresql-server:8.0 + ) + geos? ( sci-libs/geos ) + proj? ( sci-libs/proj )" + +DEPEND="${RDEPEND} + doc? ( app-text/docbook-xsl-stylesheets )" + +RESTRICT="test" + +pkg_setup(){ + export PGSLOT="$(postgresql-config show)" + + if [[ ${PGSLOT//.} < 71 || ${PGSLOT//.} > 84 ]] ; then + eerror "You must build ${CATEGORY}/${P} against PostgreSQL 7.1 - 8.4." + eerror "Set an appropriate slot with postgresql-config." + die 'Select a PostgreSQL slot between 8.4 and 9.2' + fi + + if [ ! -z "${PGUSER}" ]; then + eval unset PGUSER + fi + if [ ! -z "${PGDATABASE}" ]; then + eval unset PGDATABASE + fi + local tmp + tmp="$(portageq match / ${CATEGORY}/${PN} | cut -d'.' -f2)" + if [ "${tmp}" != "$(get_version_component_range 2)" ]; then + elog "You must soft upgrade your existing postgis enabled databases" + elog "by adding their names in the ${ROOT}conf.d/postgis_dbs file" + elog "then using 'emerge --config postgis'." + require_soft_upgrade="1" + ebeep 2 + fi +} + +src_compile(){ + local myconf + if use geos; then + myconf="--with-geos" + fi + + if use doc; then + myconf="${myconf} --with-xsl=$(ls "${ROOT}"usr/share/sgml/docbook/* | \ + grep xsl\- | cut -d':' -f1)" + fi + + econf --enable-autoconf \ + --datadir=/usr/share/postgresql/contrib/ \ + --libdir=/usr/$(get_libdir)/postgresql/ \ + --with-docdir=/usr/share/doc/${PF}/html/ \ + ${myconf} \ + $(use_with proj) ||\ + die "Error: econf failed" + + emake || die "Error: emake failed" + + cd topology/ + emake || die "Unable to build topology sql file" + + if use doc ; then + cd "${S}" + emake docs || die "Unable to build documentation" + fi +} + +src_install(){ + dodir /usr/$(get_libdir)/postgresql /usr/share/postgresql/contrib/ + emake DESTDIR="${D}" install || die "emake install failed" + cd "${S}/topology/" + emake DESTDIR="${D}" install || die "emake install topology failed" + + cd "${S}" + dodoc CREDITS TODO loader/README.* doc/*txt + + docinto topology + dodoc topology/{TODO,README} + dobin ./utils/postgis_restore.pl + + cd "${S}" + if use doc; then + emake DESTDIR="${D}" docs-install || die "emake install docs failed" + fi + + echo "template_gis" > postgis_dbs + doconfd postgis_dbs + + if [ ! -z "${require_soft_upgrade}" ]; then + grep "'C'" -B 4 "${D}"usr/share/postgresql/contrib/lwpostgis.sql | \ + grep -v "'sql'" > \ + "${D}"usr/share/postgresql/contrib/load_before_upgrade.sql + fi +} + +pkg_postinst() { + elog "To create new (upgrade) spatial databases add their names in the" + elog "${ROOT}conf.d/postgis_dbs file, then use 'emerge --config postgis'." +} + +pkg_config(){ + einfo "Create or upgrade a spatial templates and databases." + einfo "Please add your databases names into ${ROOT}conf.d/postgis_dbs" + einfo "(templates name have to be prefixed with 'template')." + for i in $(cat "${ROOT}etc/conf.d/postgis_dbs"); do + source "${ROOT}"etc/conf.d/postgresql + PGDATABASE=${i} + eval set PGDATABASE=${i} + myuser="${PGUSER:-postgres}" + mydb="${PGDATABASE:-template_gis}" + eval set PGUSER=${myuser} + + is_template=false + if [ "${mydb:0:8}" == "template" ];then + is_template=true + mytype="template database" + else + mytype="database" + fi + + einfo + einfo "Using the user ${myuser} and the ${mydb} ${mytype}." + + logfile=$(mktemp "${ROOT}tmp/error.log.XXXXXX") + safe_exit(){ + eerror "Removing created ${mydb} ${mytype}" + dropdb -q -U "${myuser}" "${mydb}" ||\ + (eerror "${1}" + die "Removing old db failed, you must do it manually") + eerror "Please read ${logfile} for more information." + die "${1}" + } + + # if there is not a table or a template existing with the same name, create. + if [ -z "$(psql -U ${myuser} -l | grep "${mydb}")" ]; then + createdb -q -O ${myuser} -U ${myuser} ${mydb} ||\ + die "Unable to create the ${mydb} ${mytype} as ${myuser}" + createlang -U ${myuser} plpgsql ${mydb} + if [ "$?" == 2 ]; then + safe_exit "Unable to createlang plpgsql ${mydb}." + fi + (psql -q -U ${myuser} ${mydb} -f \ + "${ROOT}"usr/share/postgresql/contrib/lwpostgis.sql && + psql -q -U ${myuser} ${mydb} -f \ + "${ROOT}"usr/share/postgresql/contrib/spatial_ref_sys.sql) 2>\ + "${logfile}" + if [ "$(grep -c ERROR "${logfile}")" \> 0 ]; then + safe_exit "Unable to load sql files." + fi + if ${is_template}; then + psql -q -U ${myuser} ${mydb} -c \ + "UPDATE pg_database SET datistemplate = TRUE + WHERE datname = '${mydb}'; + GRANT ALL ON table spatial_ref_sys, geometry_columns TO PUBLIC;" \ + || die "Unable to create ${mydb}" + psql -q -U ${myuser} ${mydb} -c \ + "VACUUM FREEZE;" || die "Unable to set VACUUM FREEZE option" + fi + else + if [ -e "${ROOT}"usr/share/postgresql/contrib/load_before_upgrade.sql ]; + then + einfo "Updating the dynamic library references" + psql -q -f \ + "${ROOT}"usr/share/postgresql/contrib/load_before_upgrade.sql\ + 2> "${logfile}" + if [ "$(grep -c ERROR "${logfile}")" \> 0 ]; then + safe_exit "Unable to update references." + fi + fi + if [ -e "${ROOT}"usr/share/postgresql/contrib/lwpostgis_upgrade.sql ]; + then + einfo "Running soft upgrade" + psql -q -U ${myuser} ${mydb} -f \ + "${ROOT}"usr/share/postgresql/contrib/lwpostgis_upgrade.sql 2>\ + "${logfile}" + if [ "$(grep -c ERROR "${logfile}")" \> 0 ]; then + safe_exit "Unable to run soft upgrade." + fi + fi + fi + if ${is_template}; then + einfo "You can now create a spatial database using :" + einfo "'createdb -T ${mydb} test'" + fi + done +} diff --git a/dev-db/postgis/postgis-1.4.2-r2.ebuild b/dev-db/postgis/postgis-1.4.2-r2.ebuild new file mode 100644 index 000000000000..60d23f2b0c3f --- /dev/null +++ b/dev-db/postgis/postgis-1.4.2-r2.ebuild @@ -0,0 +1,255 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-db/postgis/postgis-1.4.2-r2.ebuild,v 1.1 2013/01/30 14:46:58 titanofold Exp $ + +EAPI="4" + +inherit eutils versionator + +DESCRIPTION="Geographic Objects for PostgreSQL" +HOMEPAGE="http://postgis.net" +SRC_URI="http://download.osgeo.org/postgis/source/${P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="doc gtk" + +RDEPEND=" + || ( + dev-db/postgresql-server:8.4 + dev-db/postgresql-server:8.3 + dev-db/postgresql-server:8.2 + ) + >=sci-libs/geos-3.1 + >=sci-libs/proj-4.5.0 + gtk? ( x11-libs/gtk+:2 ) +" + +DEPEND="${RDEPEND} + doc? ( + app-text/docbook-xsl-stylesheets + app-text/docbook-xml-dtd:4.3 + dev-libs/libxslt + || ( + media-gfx/imagemagick[png] + media-gfx/graphicsmagick[imagemagick,png] + ) + ) +" + +RESTRICT="test" + +PGIS="$(get_version_component_range 1-2)" + +# not parallel safe +MAKEOPTS+=" -j1" + +pkg_setup() { + export PGSLOT="$(postgresql-config show)" + + if [[ ${PGSLOT//.} < 82 || ${PGSLOT//.} > 84 ]] ; then + eerror "You must build ${CATEGORY}/${P} against PostgreSQL 8.2 - 8.4." + eerror "Set an appropriate slot with postgresql-config." + die 'Select a PostgreSQL slot between 8.2 and 8.4' + fi +} + +src_configure() { + # Configure interprets --without-gui as being the same as --with-gui + local myargs="" + use gtk && myargs+=" --with-gui" + econf \ + ${myargs} +} + +src_compile() { + # Occasionally, builds fail because of out of order compilation. + # Otherwise, it'd be fine. + emake + cd topology/ + emake + + if use doc ; then + cd "${S}/doc/" + emake + fi +} + +src_install() { + emake DESTDIR="${D}" install + cd topology/ + emake DESTDIR="${D}" install + + cd "${S}" + dodoc CREDITS TODO loader/README.* doc/*txt + + docinto topology + dodoc topology/{TODO,README} + dobin ./utils/postgis_restore.pl + + if use doc; then + cd doc/html + dohtml -r * + fi + + insinto /usr/share/postgresql-${PGSLOT}/contrib/postgis-${PGIS}/ + doins postgis_comments.sql + + insinto /etc + doins "${FILESDIR}/postgis_dbs-${PGIS}" + + cd "${S}/doc" + doman man/* +} + +pkg_postinst() { + postgresql-config update + + 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-${PGIS}" + 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_version + server_version=$(psql -U ${pguser} -d postgres -p ${PGPORT} \ + -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 != ${PGSLOT//.} ]] ; 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}" + psql -q -U ${pguser} -p ${PGPORT} -d ${db} \ + -f "${postgis_path}/postgis_comments.sql" + retval=$? + [[ $retval == 0 ]] && eend 0 || safe_exit + done + + for db in ${upgrade_from_1_2[@]} ; do + ebegin "Upgrading from PostGIS 1.2 to ${PGIS} on ${db}" + psql -q -U ${pguser} -p ${PGPORT} -d ${db} \ + -f "${postgis_path}/postgis_upgrade_12_to_${PGIS//.}.sql" + retval=$? + [[ $retval == 0 ]] && eend 0 || safe_exit + 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 "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 "To enable other databases, change the default slot:" + einfo " postgresql-config set <slot>" + einfo "Then, emerge this package again:" + einfo " emerge -av =${CATEGORY}/${PF}" +} diff --git a/dev-db/postgis/postgis-1.5.8.ebuild b/dev-db/postgis/postgis-1.5.8.ebuild new file mode 100644 index 000000000000..ab58ac1d5b8f --- /dev/null +++ b/dev-db/postgis/postgis-1.5.8.ebuild @@ -0,0 +1,252 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-db/postgis/postgis-1.5.8.ebuild,v 1.1 2013/01/30 14:46:58 titanofold Exp $ + +EAPI="4" + +inherit eutils versionator + +DESCRIPTION="Geographic Objects for PostgreSQL" +HOMEPAGE="http://postgis.net" +SRC_URI="http://download.osgeo.org/postgis/source/${P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="doc gtk" + +RDEPEND=" + || ( + dev-db/postgresql-server:9.1 + dev-db/postgresql-server:9.0 + dev-db/postgresql-server:8.4 + dev-db/postgresql-server:8.3 + ) + dev-libs/libxml2:2 + >=sci-libs/geos-3.2 + >=sci-libs/proj-4.6.0 + gtk? ( x11-libs/gtk+:2 ) +" + +DEPEND="${RDEPEND} + doc? ( + app-text/docbook-xsl-stylesheets + app-text/docbook-xml-dtd:4.3 + dev-libs/libxslt + || ( + media-gfx/imagemagick + media-gfx/graphicsmagick[imagemagick] + ) + ) +" + +RESTRICT="test" + +PGIS="$(get_version_component_range 1-2)" + +# not parallel safe +MAKEOPTS+=" -j1" + +pkg_setup() { + export PGSLOT="$(postgresql-config show)" + + if [[ ${PGSLOT//.} < 83 || ${PGSLOT//.} > 91 ]] ; then + eerror "You must build ${CATEGORY}/${P} against PostgreSQL 8.3 - 9.1." + eerror "Set an appropriate slot with postgresql-config." + die 'Select a PostgreSQL slot between 8.3 and 9.1' + fi +} + +src_prepare() { + epatch "${FILESDIR}/${PN}-${PGIS}-ldflags.patch" +} + +src_configure() { + local myargs="" + use gtk && myargs+=" --with-gui" + econf ${myargs} +} + +src_compile() { + # Occasionally, builds fail because of out of order compilation. + # Otherwise, it'd be fine. + emake + emake -C topology + use doc && emake -C doc +} + +src_install() { + emake DESTDIR="${D}" install + emake -C topology DESTDIR="${D}" install + + cd "${S}" + dodoc CREDITS TODO loader/README.* doc/*txt + + docinto topology + dodoc topology/{TODO,README} + dobin ./utils/postgis_restore.pl + + if use doc; then + cd doc/html + dohtml -r * + fi + + insinto /etc + doins "${FILESDIR}/postgis_dbs" + + cd "${S}/doc" + doman man/* + insinto /usr/share/postgresql-${PGSLOT}/contrib/postgis-${PGIS}/ + doins postgis_comments.sql +} + +pkg_postinst() { + postgresql-config update + + 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_version + server_version=$(psql -U ${pguser} -d postgres -p ${PGPORT} \ + -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 != ${PGSLOT//.} ]] ; 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}" + psql -q -U ${pguser} -p ${PGPORT} -d ${db} \ + -f "${postgis_path}/postgis_comments.sql" + retval=$? + [[ $retval == 0 ]] && eend 0 || safe_exit + 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 "To enable other databases, change the default slot:" + einfo " postgresql-config set <slot>" + einfo "Then, emerge this package again:" + einfo " emerge -av =${CATEGORY}/${PF}" +} diff --git a/dev-db/postgis/postgis-2.0.2.ebuild b/dev-db/postgis/postgis-2.0.2.ebuild new file mode 100644 index 000000000000..a89561f21a93 --- /dev/null +++ b/dev-db/postgis/postgis-2.0.2.ebuild @@ -0,0 +1,250 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-db/postgis/postgis-2.0.2.ebuild,v 1.1 2013/01/30 14:46:58 titanofold Exp $ + +EAPI="4" + +inherit eutils versionator + +DESCRIPTION="Geographic Objects for PostgreSQL" +HOMEPAGE="http://postgis.net" +SRC_URI="http://download.osgeo.org/postgis/source/${P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux" +IUSE="doc gtk" + +RDEPEND=" + || ( + dev-db/postgresql-server:9.2 + dev-db/postgresql-server:9.1 + dev-db/postgresql-server:9.0 + dev-db/postgresql-server:8.4 + ) + dev-libs/libxml2:2 + >=sci-libs/geos-3.3.3 + >=sci-libs/proj-4.6.0 + >=sci-libs/gdal-1.9 + gtk? ( x11-libs/gtk+:2 ) +" + +DEPEND="${RDEPEND} + doc? ( + app-text/docbook-xsl-stylesheets + app-text/docbook-xml-dtd:4.3 + dev-libs/libxslt + || ( + media-gfx/imagemagick[png] + media-gfx/graphicsmagick[imagemagick,png] + ) + ) +" + +PGIS="$(get_version_component_range 1-2)" + +RESTRICT="test" + +# 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" + +pkg_setup() { + export PGSLOT="$(postgresql-config show)" + + if [[ ${PGSLOT//.} < 84 || ${PGSLOT//.} > 92 ]] ; then + eerror "You must build ${CATEGORY}/${P} against PostgreSQL 8.4 - 9.2." + eerror "Set an appropriate slot with postgresql-config." + die 'Select a PostgreSQL slot between 8.4 and 9.2' + fi +} + +src_prepare() { + epatch "${FILESDIR}/${PN}-${PGIS}-ldflags.patch" +} + +src_configure() { + local myargs="" + use gtk && myargs+=" --with-gui" + econf ${myargs} +} + +src_compile() { + # Occasionally, builds fail because of out of order compilation. + # Otherwise, it'd be fine. + emake + emake -C topology + use doc && emake -C doc html -j1 +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" comments-install + emake -C topology DESTDIR="${D}" install + 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" +} + +pkg_postinst() { + postgresql-config update + + 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_version + server_version=$(psql -U ${pguser} -d postgres -p ${PGPORT} \ + -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 != ${PGSLOT//.} ]] ; 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 "To enable other databases, change the default slot:" + einfo " postgresql-config set <slot>" + einfo "Then, emerge this package again:" + einfo " emerge -av =${CATEGORY}/${PF}" +} |