Skip to content

Instantly share code, notes, and snippets.

@cspanring
Forked from tokumine/postgis.rb
Created September 19, 2011 00:12
Show Gist options
  • Save cspanring/1225747 to your computer and use it in GitHub Desktop.
Save cspanring/1225747 to your computer and use it in GitHub Desktop.
PostGIS 2.0SVN Homebrew formula
# PostGIS 2.0SVN Homebrew Formula
#
# from @batu @vizzuality
#
# To use, place this file in /usr/local/Library/Formula/, then:
#
# > brew install gdal --HEAD --with-postgres
# > brew install --use-gcc postgis --HEAD
#
# If you want the original formula back just go to /usr/local and do:
#
# > git checkout Library/Formula/postgis.rb
require 'formula'
def raster?
ARGV.include? '--with-raster'
end
def topology?
ARGV.include? '--with-topology'
end
class Postgis < Formula
url 'http://postgis.refractions.net/download/postgis-1.5.3.tar.gz'
homepage 'http://postgis.refractions.net/'
head 'http://postgis.refractions.net/download/postgis-2.0.0SVN.tar.gz'
depends_on 'postgresql'
depends_on 'proj'
depends_on 'geos'
depends_on 'gdal' if raster?
# For libintl
depends_on 'gettext' if ARGV.build_head?
def options
[
['--with-raster', 'Enable PostGIS Raster extension (HEAD builds only).'],
['--with-topology', 'Enable PostGIS Topology extension (HEAD builds only).']
]
end
def install
ENV.deparallelize
args = [
"--disable-dependency-tracking",
"--prefix=#{prefix}",
"--with-projdir=#{HOMEBREW_PREFIX}"
]
# Apple ship a postgres client in Lion, conflicts with installed PostgreSQL server.
if MacOS.lion?
postgresql = Formula.factory('postgresql')
args << "--with-pgconfig=#{postgresql.bin}/pg_config"
end
if ARGV.build_head?
system "./autogen.sh"
gettext = Formula.factory('gettext')
args << "--with-gettext=#{gettext.prefix}"
args << "--with-raster" if raster?
args << "--with-topology" if topology?
end
system "./configure", *args
system "make install"
# Copy some of the generated files to the share folder
if !ARGV.build_head?
(share+'postgis').install %w(
spatial_ref_sys.sql postgis/postgis.sql
postgis/postgis_upgrade_13_to_15.sql
postgis/postgis_upgrade_14_to_15.sql
postgis/postgis_upgrade_15_minor.sql postgis/uninstall_postgis.sql
)
else
(share+'postgis').install %w(
spatial_ref_sys.sql
postgis/postgis.sql
postgis/legacy.sql
postgis/legacy_compatibility_layer.sql
postgis/postgis_upgrade_20_minor.sql
postgis/uninstall_legacy.sql
postgis/uninstall_postgis.sql
)
end
if ARGV.build_head?
(share+'postgis').install 'raster/rt_pg/rtpostgis.sql' if raster?
(share+'postgis').install 'topology/topology.sql' if topology?
end
# Copy loader and utils binaries to bin folder
bin.install %w(
loader/pgsql2shp loader/shp2pgsql utils/create_undef.pl
utils/new_postgis_restore.pl utils/postgis_proc_upgrade.pl
utils/postgis_restore.pl utils/profile_intersects.pl
)
end
def caveats; <<-EOS.undent
To create a spatially-enabled database, see the documentation:
http://postgis.refractions.net/documentation/manual-1.5/ch02.html#id2630392
and to upgrade your existing spatial databases, see here:
http://postgis.refractions.net/documentation/manual-1.5/ch02.html#upgrading
EOS
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment