From 64f77aec541ab86a3e8094074f1bfb827e18715c Mon Sep 17 00:00:00 2001 From: Regina Obe Date: Tue, 9 Oct 2012 05:06:47 +0000 Subject: [PATCH] #1627: Start work on packaging as an extension -- it's not functioning yet git-svn-id: http://svn.osgeo.org/postgis/trunk@10383 b70326c6-7e19-0410-871a-916f4a2858ee --- extensions/postgis_tiger_geocoder/META.json | 47 +++++++ extensions/postgis_tiger_geocoder/Makefile.in | 124 ++++++++++++++++++ .../doc/postgis_tiger_geocoder.md | 6 + .../postgis_tiger_geocoder.control.in | 6 + 4 files changed, 183 insertions(+) create mode 100644 extensions/postgis_tiger_geocoder/META.json create mode 100644 extensions/postgis_tiger_geocoder/Makefile.in create mode 100644 extensions/postgis_tiger_geocoder/doc/postgis_tiger_geocoder.md create mode 100644 extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control.in diff --git a/extensions/postgis_tiger_geocoder/META.json b/extensions/postgis_tiger_geocoder/META.json new file mode 100644 index 000000000..0a80f0f3b --- /dev/null +++ b/extensions/postgis_tiger_geocoder/META.json @@ -0,0 +1,47 @@ +{ + "name": "postgis_tiger_geocoder", + "abstract": "PostGIS Tiger Geocoder", + "description": "This module provides loader, geocoder, and reverse geocoder utilizing US Census Tiger data", + "version": "2.1.0", + "release_status": "unstable", + "maintainer": "Leo Hsu and Regina Obe", + "license": "gpl_2", + "provides": { + "postgis_tiger_geocoder": { + "abstract": "PostGIS Geocoder functions", + "version": "2.1.0", + "file": "sql/postgis_tiger_geocoder.sql", + "docfile": "doc/postgis_tiger_geocoder.md" + } + } + "prereqs": { + "runtime": { + "requires": { + "plpgsql": 0, + "PostgreSQL": "8.4.0", + "postgis": "2.0.0", "fuzzystrmatch": 0 + } + } + }, + "generated_by": "Regina O. Obe", + "resources": { + "bugtracker": { + "web": "http://trac.osgeo.org/postgis" + }, + "repository": { + "url": "svn://svn.osgeo.org/postgis/", + "web": "http://www.postgis.org", + "type": "svn" + } + }, + "meta-spec": { + "version": "1.0.0", + "url": "http://pgxn.org/meta/spec.txt" + }, + "tags": [ + "gis", + "spatial", + "geometry", + "location", "tiger", "geocoder", "reverse geocoder" + ] +} diff --git a/extensions/postgis_tiger_geocoder/Makefile.in b/extensions/postgis_tiger_geocoder/Makefile.in new file mode 100644 index 000000000..3bdd4ce7e --- /dev/null +++ b/extensions/postgis_tiger_geocoder/Makefile.in @@ -0,0 +1,124 @@ +include ../upgradeable_versions.mk + +EXTENSION = postgis_tiger_geocoder +EXTVERSION = @POSTGIS_LIB_VERSION@ +MINORVERSION = 2011.@POSTGIS_MAJOR_VERSION@.@POSTGIS_MINOR_VERSION@ + +MICRO_NUMBER = $(shell echo $(EXTVERSION) | sed "s/[0-9]\.[0-9]\.\([0-9]*\)[a-zA-Z]*[0-9]*/\1/") +PREREL_NUMBER = $(shell echo $(EXTVERSION) | \ + sed "s/[0-9]\.[0-9]\.\(.*\)/\1/" | \ + grep "[a-zA-Z]" | \ + sed "s/[0-9][a-zA-Z]\([0-9]*\)[a-zA-Z]*/\1/") +MICRO_PREV = $(shell if test "$(MICRO_NUMBER)x" != "x"; then expr $(MICRO_NUMBER) - 1; fi) +PREREL_PREV = $(shell if test "$(PREREL_NUMBER)x" != "x"; then expr $(PREREL_NUMBER) - 1; fi) + +PREREL_PREFIX = $(shell echo $(EXTVERSION) | \ + sed "s/[0-9]\.[0-9]\.\(.*\)/\1/" | \ + grep "[a-zA-Z]" | \ + sed "s/\([0-9][a-zA-Z]*\)[0-9]*/\1/") + +DATA = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql)) + +PG_CONFIG = @PGCONFIG@ + +PG91 = $(shell $(PG_CONFIG) --version | grep -qE " 8\.| 9\.0" && echo no || echo yes) +SQL_BITS = $(wildcard sql_bits/*.sql) +EXTRA_CLEAN += sql/*.sql ${SQL_BITS} + + +ifeq ($(PG91),yes) +all: sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql sql_minor_upgrade + +sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql + cp $< $@ + +sql/$(EXTENSION).sql: sql_bits/tiger_geocoder.sql sql_bits/mark_editable_objects.sql.in sql_bits/tiger_geocoder_comments.sql + cat $^ > $@ + +#strip BEGIN/COMMIT since these are not allowed in extensions +#strip CREATE SCHEMA since we force extension +# to create schema by setting schema to tiger_geocoder in control +sql/tiger_geocoder.sql.in: ../../extras/tiger_geocoder/tiger_2011/utility/set_search_path.sql \ + ../../extras/tiger_geocoder/tiger_2011/tables/lookup_tables_2011.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode_settings.sql \ + ../../extras/tiger_geocoder/tiger_2011/utility/utmzone.sql \ + ../../extras/tiger_geocoder/tiger_2011/utility/cull_null.sql \ + ../../extras/tiger_geocoder/tiger_2011/utility/nullable_levenshtein.sql \ + ../../extras/tiger_geocoder/tiger_2011/utility/levenshtein_ignore_case.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/end_soundex.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/count_words.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/state_extract.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/get_last_words.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_exact.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_fuzzy.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_exact.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_fuzzy.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/location_extract.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/../../extras/tiger_geocoder/tiger_2011/normalize_address.sql \ + ../../extras/tiger_geocoder/tiger_2011/normalize/pprint_addy.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/other_helper_functions.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/rate_attributes.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/includes_address.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/interpolate_from_address.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/geocode_location.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/geocode_intersection.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/geocode.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql \ + ../../extras/tiger_geocoder/tiger_2011/geocode/census_tracts_functions.sql + cat $^ > $@ +sql_bits/tiger_geocoder.sql: sql_bits/tiger_geocoder.sql.in + sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' -e '/^CREATE SCHEMA/d;' $< > $@ + +../../doc/tiger_geocoder_comments.sql: + $(MAKE) -C ../../doc comments + +sql_bits/tiger_geocoder_comments.sql: ../../doc/tiger_geocoder_comments.sql + cp $< $@ + +#grep all lines that start with CREATE OR REPLACE FUNCTION, TRIGGER... +#then replace CREATE OR REPLACE .. with ALTER EXTENSION..; +#then remove default values and extra junk +# sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: ../../tiger_geocoder/tiger_geocoder.sql +# sed -e '/^CREATE \(OR REPLACE\|TYPE\|TABLE\|VIEW\|CAST\)/!d;' \ +# -e 's/OR REPLACE//g' \ +# -e 's/CREATE\(.*\)/ALTER EXTENSION $(EXTENSION) ADD\1;/' \ +# -e 's/DEFAULT [\.0-9a-zA-Z]\+//g' \ +# -e 's/\(BEFORE\|WITH FUNCTION\)\(.*\)/;/' \ +# -e 's/[ \t]+;/;/' \ +# -e 's/(;/;/' \ +# -e 's/\\(;/;/' \ +# -e 's/;;/;/g' $< > $@ + +#hardcode for now using +#the extensions/make_unpackaged.sql script form an install +sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: sql_bits/tiger_geocoder--unpackaged.sql.in + cp $< $@ + +#upgrade script should have everything but table, schema, type creation/alter +#NOTE: we assume all object definitions end in ; +#first expression deletes all non-removable objects defined on same line +#second deletes all non-removable defined on multiple lines +# the end of the body of object we assume ends in ; +#aggregates are special +#they can be dropped but we need to remove +#them from the extension first +sql/tiger_geocoder_upgrade_minor.sql: sql_bits/tiger_geocoder.sql + sed -e '/^\(CREATE\|ALTER\) \(CAST\|TYPE\|TABLE\|SCHEMA\|DOMAIN\|TRIGGER\).*;/d' \ + -e '/^\(CREATE\|ALTER\) \(CAST\|TYPE\|TABLE\|SCHEMA\|DOMAIN\|TRIGGER\)/,/\;/d' \ + $< > $@ + +sql_minor_upgrade: ../postgis_extension_helper.sql sql_bits/remove_from_extension.sql.in sql/tiger_geocoder_upgrade_minor.sql sql_bits/mark_editable_objects.sql.in sql_bits/tiger_geocoder_comments.sql ../postgis_extension_helper_uninstall.sql + for OLD_VERSION in $(UPGRADEABLE_VERSIONS); do \ + cat $^ > sql/$(EXTENSION)--$$OLD_VERSION--$(EXTVERSION).sql; \ + done + +DATA = $(wildcard sql/*--*.sql) sql/$(EXTENSION)--$(EXTVERSION).sql +EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql +endif + +distclean: clean + rm Makefile + +PGXS := $(shell $(PG_CONFIG) --pgxs) +include $(PGXS) diff --git a/extensions/postgis_tiger_geocoder/doc/postgis_tiger_geocoder.md b/extensions/postgis_tiger_geocoder/doc/postgis_tiger_geocoder.md new file mode 100644 index 000000000..14e6edc72 --- /dev/null +++ b/extensions/postgis_tiger_geocoder/doc/postgis_tiger_geocoder.md @@ -0,0 +1,6 @@ +PostGIS 2.1.0 +============ + +Extensive documentation can be found at. +HTML: http://www.postgis.org/documentation/manual-svn/ +PDF: http://www.postgis.org/download/postgis-2.1.0SVN.pdf diff --git a/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control.in b/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control.in new file mode 100644 index 000000000..8a5c0a9a5 --- /dev/null +++ b/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control.in @@ -0,0 +1,6 @@ +# postgis tiger geocoder extension +comment = 'PostGIS tiger geocoder and reverse geocoder' +default_version = '@POSTGIS_LIB_VERSION@' +relocatable = false +schema = tiger +requires = postgis -- 2.40.0