[SCM] postgis branch, master, updated. upstream/2.0.1-50-ge8dd40b
Markus Wanner
markus at bluegap.ch
Wed Jun 12 18:51:38 UTC 2013
The following commit has been merged in the master branch:
commit e8dd40baa2e9380aa37e05b01d7fb23b6dbaa670
Author: Markus Wanner <markus at bluegap.ch>
Date: Wed Jun 12 20:47:49 2013 +0200
Land the changes from the pgdg branch, allowing the postgis extension
to be built against multiple Postgres versions.
Add 'debian/control' as a dependency of the 'clean' target so we are
sure it's up to date.
diff --git a/debian/changelog b/debian/changelog
index 3c48562..24e39c5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,8 +11,9 @@ postgis (2.0.3-1) unstable; urgency=low
liblwgeom/lwout_wkt.c.
* Ignore changes of some auto-updated files (via source/options). Let
debian/rules cleanup some more generated files.
- * rules: swap dh_makeshlibs and dh_installdeb, build in the appropriate
- build targets, let install only install pre-built stuff.
+ * rules: use a separate build directory per Postgres version, swap
+ dh_makeshlibs and dh_installdeb, build in the appropriate build targets,
+ let install only install pre-built stuff.
* Compile the postgis jdbc java library again, using maven directly. Add
required Build-Depends-Indeps.
* Separate large SQL scripts and perl utils. Put them in their own
diff --git a/debian/pgversions b/debian/pgversions
index 1d15182..6d3dbe3 100644
--- a/debian/pgversions
+++ b/debian/pgversions
@@ -1,3 +1,6 @@
# Note that postgis-2.0 is not recommended for 8.4 and 9.0, works fine
# with 9.1 and 9.2, but doesn't work with 9.3, yet.
+8.4
+9.0
9.1
+9.2
diff --git a/debian/rules b/debian/rules
index 135f653..65d39c0 100755
--- a/debian/rules
+++ b/debian/rules
@@ -53,19 +53,40 @@ ifeq ($(POSTGIS_VERSION),..)
$(error Cannot detect Postgis version, fix debian/rules)
endif
-# For plain Debian, we support only exactly one version at a time.
+# For the Postgres APT repository, we want to support multiple
+# Postgres versions. However, docs and the JDBC jar only need to be
+# built once - in the main directory.
NEWEST_POSTGRES_VERSION = $(shell pg_buildext supported-versions $(CURDIR)|tail -1)
ifeq ($(NEWEST_POSTGRES_VERSION),)
$(error Cannot detect Postgres version, check debian/pgversions and pg_buildext)
endif
+OTHER_POSTGRES_VERSIONS = $(shell pg_buildext supported-versions $(CURDIR)\
+ | grep -v "$(NEWEST_POSTGRES_VERSION)")
+
+COMMON_CONFIGURE_ARGS = --host=$(DEB_HOST_GNU_TYPE) \
+ --build=$(DEB_BUILD_GNU_TYPE) \
+ --prefix=/usr \
+ --exec-prefix=\$${prefix} \
+ --docdir=\$${prefix}/share/doc \
+ --mandir=\$${prefix}/share/man \
+ --infodir=\$${prefix}/share/info \
+ --with-gui
+
build: build-arch build-indep
build-arch: build-arch-stamp
build-arch-stamp: configuration-stamp
+# Build against the newest Postgres version
$(MAKE)
$(MAKE) -C doc
+# Build against all other Postgres versions
+ (set -e; \
+ for PGVER in $(OTHER_POSTGRES_VERSIONS); do \
+ $(MAKE) -C $(CURDIR)/debian/build-$$PGVER; \
+ done)
+
touch $@
build-indep: build-indep-stamp
@@ -91,28 +112,48 @@ build-indep-stamp: configuration-stamp
configuration: configuration-stamp
configuration-stamp:
dh_testdir
- dh_prep -s
+ dh_prep -s
+
+# Copy sources required to build extensions for all but the most
+# recent Postgres version. Unfortunately, Postgis doesn't support
+# vpath builds.
+ (set -e; \
+ for PGVER in $(OTHER_POSTGRES_VERSIONS); do \
+ mkdir $(CURDIR)/debian/build-$$PGVER; \
+ for FILE in `ls $(CURDIR)|grep -v debian`; do \
+ cp -a $$FILE $(CURDIR)/debian/build-$$PGVER; \
+ done; \
+ done)
+
# Documentation and common files for PostGIS
[ ! -f doc/html/postgis.html.prev -a -f doc/html/postgis.html ] && cp doc/html/postgis.html doc/html/postgis.html.prev || true
# PostGIS for the most recent PostgreSQL version
- ./configure \
- --host=$(DEB_HOST_GNU_TYPE) \
- --build=$(DEB_BUILD_GNU_TYPE) \
- --prefix=/usr \
- --exec-prefix=\$${prefix} \
+ ./configure $(COMMON_CONFIGURE_ARGS) \
--datadir=\$${prefix}/share/postgresql-$(NEWEST_POSTGRES_VERSION)-postgis \
- --docdir=\$${prefix}/share/doc \
- --mandir=\$${prefix}/share/man \
- --infodir=\$${prefix}/share/info \
- --with-pgconfig=/usr/lib/postgresql/$(NEWEST_POSTGRES_VERSION)/bin/pg_config \
- --with-gui
+ --with-pgconfig=/usr/lib/postgresql/$(NEWEST_POSTGRES_VERSION)/bin/pg_config
+
+# PostGIS for all older Postgres versions
+ (set -e; \
+ for PGVER in $(OTHER_POSTGRES_VERSIONS); do \
+ cd $(CURDIR)/debian/build-$$PGVER; \
+ ./configure $(COMMON_CONFIGURE_ARGS) \
+ --datadir=\$${prefix}/share/postgresql-$$PGVER-postgis \
+ --with-pgconfig=/usr/lib/postgresql/$$PGVER/bin/pg_config; \
+ done)
touch $@
-clean:
+clean: debian/control
dh_testdir
dh_testroot
+
+# Clean all separate build directories.
+ (set -e; \
+ for PGVER in $(OTHER_POSTGRES_VERSIONS); do \
+ rm -rf $(CURDIR)/debian/build-$$PGVER; \
+ done)
+
rm -f raster/rt_pg/rtpostgis_drop.sql raster/rt_pg/rtpostgis_upgrade_cleanup.sql postgis/postgis_upgrade_20_minor.sql.in
[ -f doc/html/postgis.html.prev ] && mv doc/html/postgis.html.prev doc/html/postgis.html || true
[ ! -f GNUmakefile ] || $(MAKE) distclean || true
@@ -132,8 +173,19 @@ install-indep: build-indep
dh_prep -i
dh_installdirs -i
-# Install extensions
+# Install extensions for the most recent Postgres version
$(MAKE) -C extensions install DESTDIR=$(CURDIR)/debian/tmp
+
+# Install extensions for the older Postgres versions
+ (set -e; \
+ for PGVER in $(OTHER_POSTGRES_VERSIONS); do \
+ $(MAKE) -C $(CURDIR)/debian/build-$$PGVER \
+ install DESTDIR=$(CURDIR)/debian/tmp; \
+ $(MAKE) -C $(CURDIR)/debian/build-$$PGVER/extensions \
+ install DESTDIR=$(CURDIR)/debian/tmp; \
+ done)
+
+# Compile and install docs
$(MAKE) -C doc docs-install \
DESTDIR=$(CURDIR)/debian/tmp \
PGSQL_DOCDIR=/usr/share/doc
@@ -151,20 +203,32 @@ install-arch: build-arch
dh_prep -s
dh_installdirs -s
-# Install docs
+# Install the extension for the most recent Postgres verison
$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
+
+# Install the extensions for the older Postgres versions
+ (set -e; \
+ for PGVER in $(OTHER_POSTGRES_VERSIONS); do \
+ $(MAKE) -C $(CURDIR)/debian/build-$$PGVER \
+ install DESTDIR=$(CURDIR)/debian/tmp; \
+ done)
+
+# Install docs and man pages
$(MAKE) -C doc man-install \
DESTDIR=$(CURDIR)/debian/tmp \
PGSQL_DOCDIR=/usr/share/doc \
PGSQL_MANDIR=/usr/share/man
# Auto-create required .install file for the current Postgres version.
- cat $(CURDIR)/debian/postgresql-generic-postgis-2.0.install.in \
- | sed -e 's/@PGVERSION@/$(NEWEST_POSTGRES_VERSION)/' \
- > $(CURDIR)/debian/postgresql-$(NEWEST_POSTGRES_VERSION)-postgis-2.0.install
- cat $(CURDIR)/debian/postgresql-generic-postgis-2.0-scripts.install.in \
- | sed -e 's/@PGVERSION@/$(NEWEST_POSTGRES_VERSION)/' \
- > $(CURDIR)/debian/postgresql-$(NEWEST_POSTGRES_VERSION)-postgis-2.0-scripts.install
+ (set -e; \
+ for PGVER in $(OTHER_POSTGRES_VERSIONS) $(NEWEST_POSTGRES_VERSION); do \
+ cat $(CURDIR)/debian/postgresql-generic-postgis-2.0.install.in \
+ | sed -e "s/@PGVERSION@/$$PGVER/" \
+ > $(CURDIR)/debian/postgresql-$$PGVER-postgis-2.0.install; \
+ cat $(CURDIR)/debian/postgresql-generic-postgis-2.0-scripts.install.in \
+ | sed -e "s/@PGVERSION@/$$PGVER/" \
+ > $(CURDIR)/debian/postgresql-$$PGVER-postgis-2.0-scripts.install; \
+ done)
dh_install -s
@@ -201,4 +265,4 @@ binary-arch: install-arch
$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
binary: binary-arch binary-indep
-.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch check
+.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch check debian/control
--
PostGIS for PostgreSQL
More information about the Pkg-grass-devel
mailing list