Last active
December 26, 2015 20:19
-
-
Save tneems/7208103 to your computer and use it in GitHub Desktop.
homebrew postgis 2.0 installed w/ postgrel92
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'formula' | |
| class Postgis20 < Formula | |
| homepage 'http://postgis.net' | |
| url 'http://download.osgeo.org/postgis/source/postgis-2.0.3.tar.gz' | |
| sha1 '825c1718cf2603fa0f1c2de802989dff7239f9bc' | |
| head 'http://svn.osgeo.org/postgis/trunk/' | |
| option 'with-gui', 'Build shp2pgsql-gui in addition to command line tools' | |
| depends_on :automake | |
| depends_on :libtool | |
| depends_on 'gpp' => :build | |
| depends_on 'postgresql92' | |
| depends_on 'proj' | |
| depends_on 'geos' | |
| depends_on 'gtk+' if build.include? 'with-gui' | |
| # For GeoJSON and raster handling | |
| depends_on 'json-c' | |
| depends_on 'gdal' | |
| # Force GPP to be used when pre-processing SQL files. See: | |
| # http://trac.osgeo.org/postgis/ticket/1694 | |
| # Fix linking aganist json-c, upstream in: | |
| # https://github.com/postgis/postgis/commit/1c988618c9448dcdc43bc8ffe4ef8ff1d4dae838 | |
| def patches; DATA end | |
| def install | |
| # Follow the PostgreSQL linked keg back to the active Postgres installation | |
| # as it is common for people to avoid upgrading Postgres. | |
| postgres_realpath = Formula.factory('postgresql92').opt_prefix.realpath | |
| ENV.deparallelize | |
| args = [ | |
| "--disable-dependency-tracking", | |
| # Can't use --prefix, PostGIS disrespects it and flat-out refuses to | |
| # accept it with 2.0. | |
| "--with-projdir=#{HOMEBREW_PREFIX}", | |
| "--with-jsondir=#{Formula.factory('json-c').opt_prefix}", | |
| # This is against Homebrew guidelines, but we have to do it as the | |
| # PostGIS plugin libraries can only be properly inserted into Homebrew's | |
| # Postgresql keg. | |
| "--with-pgconfig=#{postgres_realpath}/bin/pg_config", | |
| # Unfortunately, NLS support causes all kinds of headaches because | |
| # PostGIS gets all of it's compiler flags from the PGXS makefiles. This | |
| # makes it nigh impossible to tell the buildsystem where our keg-only | |
| # gettext installations are. | |
| "--disable-nls" | |
| ] | |
| args << '--with-gui' if build.include? 'with-gui' | |
| system './autogen.sh' | |
| system './configure', *args | |
| system 'make' | |
| # PostGIS includes the PGXS makefiles and so will install __everything__ | |
| # into the Postgres keg instead of the PostGIS keg. Unfortunately, some | |
| # things have to be inside the Postgres keg in order to be function. So, we | |
| # install everything to a staging directory and manually move the pieces | |
| # into the appropriate prefixes. | |
| mkdir 'stage' | |
| system 'make', 'install', "DESTDIR=#{buildpath}/stage" | |
| # Install PostGIS plugin libraries into the Postgres keg so that they can | |
| # be loaded and so PostGIS databases will continue to function even if | |
| # PostGIS is removed. | |
| (postgres_realpath/'lib').install Dir['stage/**/*.so'] | |
| # Install extension scripts to the Postgres keg. | |
| # `CREATE EXTENSION postgis;` won't work if these are located elsewhere. | |
| (postgres_realpath/'share/postgresql92/extension').install Dir['stage/**/extension/*'] | |
| bin.install Dir['stage/**/bin/*'] | |
| lib.install Dir['stage/**/lib/*'] | |
| include.install Dir['stage/**/include/*'] | |
| # Stand-alone SQL files will be installed the share folder | |
| (share/'postgis').install Dir['stage/**/contrib/postgis-2.0/*'] | |
| # Extension scripts | |
| bin.install %w[ | |
| utils/create_undef.pl | |
| utils/postgis_proc_upgrade.pl | |
| utils/postgis_restore.pl | |
| utils/profile_intersects.pl | |
| utils/test_estimation.pl | |
| utils/test_geography_estimation.pl | |
| utils/test_geography_joinestimation.pl | |
| utils/test_joinestimation.pl | |
| ] | |
| man1.install Dir['doc/**/*.1'] | |
| end | |
| def caveats; | |
| pg = Formula.factory('postgresql92').opt_prefix | |
| <<-EOS.undent | |
| To create a spatially-enabled database, see the documentation: | |
| http://postgis.refractions.net/documentation/manual-2.0/postgis_installation.html#create_new_db_extensions | |
| and to upgrade your existing spatial databases, see here: | |
| http://postgis.refractions.net/documentation/manual-2.0/postgis_installation.html#upgrading | |
| PostGIS SQL scripts installed to: | |
| #{HOMEBREW_PREFIX}/share/postgis | |
| PostGIS plugin libraries installed to: | |
| #{pg}/lib | |
| PostGIS extension modules installed to: | |
| #{pg}/share/postgresql/extension | |
| EOS | |
| end | |
| end | |
| __END__ | |
| Force usage of GPP as the SQL pre-processor as Clang chokes and fix json-c link error | |
| diff --git a/configure.ac b/configure.ac | |
| index 68d9240..8514041 100644 | |
| --- a/configure.ac | |
| +++ b/configure.ac | |
| @@ -31,17 +31,8 @@ AC_SUBST([ANT]) | |
| dnl | |
| dnl SQL Preprocessor | |
| dnl | |
| -AC_PATH_PROG([CPPBIN], [cpp], []) | |
| -if test "x$CPPBIN" != "x"; then | |
| - SQLPP="${CPPBIN} -traditional-cpp -P" | |
| -else | |
| - AC_PATH_PROG([GPP], [gpp_], []) | |
| - if test "x$GPP" != "x"; then | |
| - SQLPP="${GPP} -C -s \'" dnl Use better string support | |
| - else | |
| - SQLPP="${CPP} -traditional-cpp" | |
| - fi | |
| -fi | |
| +AC_PATH_PROG([GPP], [gpp], []) | |
| +SQLPP="${GPP} -C -s \'" dnl Use better string support | |
| AC_SUBST([SQLPP]) | |
| dnl | |
| @@ -740,7 +731,9 @@ CPPFLAGS="$CPPFLAGS_SAVE" | |
| dnl Ensure we can link against libjson | |
| LIBS_SAVE="$LIBS" | |
| LIBS="$JSON_LDFLAGS" | |
| -AC_CHECK_LIB([json], [json_object_get], [HAVE_JSON=yes], [], []) | |
| +AC_CHECK_LIB([json-c], [json_object_get], [HAVE_JSON=yes; JSON_LDFLAGS="-ljson-c"], [ | |
| + AC_CHECK_LIB([json], [json_object_get], [HAVE_JSON=yes; JSON_LDFLAGS="-ljson"], [], []) | |
| +], []) | |
| LIBS="$LIBS_SAVE" | |
| if test "$HAVE_JSON" = "yes"; then |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
PG 9.3 + PGIS 2.1
brew install python
brew install postgresql --no-tcl
pip-2.7 install numpy
brew install postgis
PG 9.2 + PGIS 2.0
This might need the above pip package, I'm not sure
brew install postgresql92 --no-tcl
brew install https://gist.github.com/tneems/7208103/raw/740508365a12d4df4abe136839e26fc944b45b0c/postgis20.rb