I said I would install PostGIS for a student project but I wish I never said yes, since it has taken over a week to compile it.
As you may guess there are not many working instruction out in the wild!
I will break down this step-by-step guide into different blogs entries otherwise it will get very long.
- Compile PostgreSQL on Solaris 11 (11.3)
- Proj4 reprojection library (GNU compilers) or (Developer Studio 12.5)
- GEOS geometry library (GNU compilers) or (Developer Studio 12.5)
- GDAL
- Geos fails to compile : See Need to compile the libGeos using Sun Studio12 on Solaris10 #224
libtool: compile: /opt/developerstudio12.5/bin/CC -m64 -DHAVE_CONFIG_H -I. -I../../include -I../../include/geos -I../../include -m64 -DGEOS_INLINE -pedantic -Wall -ansi -Wno-long-long -m64 -c ConvexHull.cpp -KPIC -DPIC -o .libs/ConvexHull.o
CC: Warning: Option -ansi passed to ld, if ld is invoked, ignored otherwise
"ConvexHull.cpp", line 121: Warning: inputPts hides geos::algorithm::ConvexHull::inputPts.
"ConvexHull.cpp", line 160: Warning: inputPts hides geos::algorithm::ConvexHull::inputPts.
"ConvexHull.cpp", line 211: Error: Could not find a match for std::vector::assign(__rwstd::__rb_tree , geos::geom::CoordinateLessThen, std::allocator >::const_iterator, __rwstd::__rb_tree , geos::geom::CoordinateLessThen, std::allocator >::const_iterator) needed in geos::algorithm::ConvexHull::reduce(std::vector &).
1 Error(s) and 2 Warning(s) detected.
- PostGIS had to many errors to mention here
- No python module install with GDAL, again to many compile errors.
- Ref: Alternative installation for Solaris 10 using OpenCSW
Compile PostGIS
# pkg install developer/gcc-45 build/gnu-make# pkg install libtool automake autoconf gnu-gettext library/libxml2 library/json-c
# export PATH=/usr/gcc/4.5/bin:/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/lib:/usr/gnu/bin:
# gzip -dc postgis-2.2.2.tar.gz | tar xf -
# cd postgis-2.2.2
See the following for a fix for undeclared NAN. "'NAN' undeclared (first use in this function)"
# ./configure CC='gcc -m64' CFLAGS='-m64 -DNAN="(0.0/0.0)"' LDFLAGS='-L/usr/local/postgres/9.53-pgdg/lib/64' CXX='g++ -m64' \
--prefix=/usr/local/postgres/postgis \
--with-pgconfig=/usr/local/postgres/9.53-pgdg/bin/64/pg_config \
--with-geosconfig=/usr/local/postgres/geos/bin/geos-config \
--with-gdalconfig=/usr/local/postgres/gdal/bin/gdal-config \
--with-projdir=/usr/local/postgres/proj4
...
config.status: executing po-directories commands
PostGIS is now configured for x86_64-pc-solaris2.11
-------------- Compiler Info -------------
C compiler: gcc -m64 -m64 -DNAN="(0.0/0.0)"
SQL preprocessor: /usr/gcc/4.5/bin/cpp -traditional-cpp -w -P
-------------- Dependencies --------------
GEOS config: /usr/local/postgres/geos/bin/geos-config
GEOS version: 3.5.0
GDAL config: /usr/local/postgres/gdal/bin/gdal-config
GDAL version: 2.1.0
PostgreSQL config: /usr/local/postgres/9.53-pgdg/bin/64/pg_config
PostgreSQL version: PostgreSQL 9.5.3
PROJ4 version: 49
Libxml2 config: /usr/bin/xml2-config
Libxml2 version: 2.9.4
JSON-C support: yes
PCRE support: no
PostGIS debug level: 0
Perl: /usr/bin/perl
--------------- Extensions ---------------
PostGIS Raster: enabled
PostGIS Topology: enabled
SFCGAL support: disabled
Address Standardizer support: disabled
-------- Documentation Generation --------
xsltproc: /usr/bin/xsltproc
xsl style sheets:
dblatex:
convert:
mathml2.dtd: http://www.w3.org/Math/DTD/mathml2/mathml2.dtd
# gmake
# gmake install
Any updates or additions please let me know so that I can keep this pages up to date.
Some addition information from postgis-devel mail lists:
ReplyDelete- pkgsrc builds from Joyent https://github.com/joyent/pkgsrc/tree/trunk/databases/postgresql-postgis2 this look very interesting
- Solaris 10 build script using OpenCSW https://github.com/pramsey/suite-solaris-build/blob/master/pgsql-postgis-gdal-build.sh
I have added 2 new posts about how to compile some of the above using Oracle Developer Studio 12.5:
ReplyDeleteCompile Proj4 reprojection library on Solaris 11 using Oracle Developer Studio 12.5 : http://notallmicrosoft.blogspot.co.uk/2016/07/compile-proj4-reprojection-library-on.html
and
Compile GEOS geometry library on Solaris 11 using Oracle Developer Studio 12.5 : http://notallmicrosoft.blogspot.co.uk/2016/07/compile-geos-geometry-library-on.html
Nice post. Would love to add your Solaris review on IT Central Station. Other users like it a lot as well: https://goo.gl/ijRUds.
ReplyDeleteThat sounds like a great idea.
ReplyDeleteHi Andrew,
ReplyDeleteYou had a very resourceful blog here.
I tried to compile Postgis as your instruction,
the CC succeed, but the gmake fails with this error :
Unable to locate target new version number in postgis.sql
gmake[1]: *** [Makefile:189: postgis_upgrade.sql.in] Error 255
gmake[1]: *** Deleting file 'postgis_upgrade.sql.in'
gmake[1]: Leaving directory '/home/handojoh/Downloads/postgis/postgis-2.3.1/postgis'
gmake: *** [GNUmakefile:16: all] Error 1
Is it possible to consult personally ? I can't seem to find your email here.
Regards,
Handojo
Handojo,
ReplyDeleteI haven't touch it since I did the blog, but I just went through teh steps again with the latest version and no errors.
Have you checked your path: export PATH=/usr/gcc/4.5/bin:/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/lib:/usr/gnu/bin:
# cpp --version
cpp (GCC) 4.5.2
# gcc --version
gcc (GCC) 4.5.2
This link https://trac.osgeo.org/postgis/ticket/3506 shows the same error which may help.
Andrew