[postgis-users] PostGIS 1.4.1rc2
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Thu Dec 10 06:31:15 PST 2009
Greg Troxel wrote:
Hi Greg,
> I'm continuing to work on packaging 1.4.1rc2 for pkgsrc, this time on
> NetBSD (to avoid Mac shlib oddness until everything else is ok). I am
> building against postgresql 8.4.
>
> I have a few observations/questions:
>
> * The postgis library is installed as
>
> -rw-r--r-- 1 root wheel 552868 Dec 9 15:44 /usr/pkg/lib/libpostgis-1.4.a
> -rwxr-xr-x 1 root wheel 926 Dec 9 15:44 /usr/pkg/lib/libpostgis-1.4.la
> lrwxr-xr-x 1 root wheel 23 Dec 9 15:44 /usr/pkg/lib/libpostgis-1.4.so -> libpostgis-1.4.so.0.0.0
> lrwxr-xr-x 1 root wheel 23 Dec 9 15:44 /usr/pkg/lib/libpostgis-1.4.so.0 -> libpostgis-1.4.so.0.0.0
> -rwxr-xr-x 1 root wheel 268310 Dec 9 15:44 /usr/pkg/lib/libpostgis-1.4.so.0.0.0
>
> which is autoconf default $(libdir) for --prefix=/usr/pkg. But
> pg_config --pkglibdir is
>
> $ pg_config --pkglibdir
> /usr/pkg/lib/postgresql
>
> and configure was invoked:
>
> ./configure --enable-rpath --datadir=/usr/pkg/share/postgresql/contrib --without -libintl-prefix --without-libiconv-prefix --prefix=/usr/pkg --build=i386--netbsdelf --host=i386--netbsdelf --mandir=/usr/pkg/man
>
> Where is it really supposed to go?
>
> * postgis.sql does not get the path to the postgis library substituted.
> I don't get how $$libdir is supposed to be expanded by gmake:
>
> %.sql: %.sql.in
> sed 's,MODULE_PATHNAME,$$libdir/$*- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@,g' $< >$@
>
> gmake runs
>
> sed 's,MODULE_PATHNAME,$libdir/postgis-1.4,g' postgis.sql.in >postgis.sql
>
> which results in the installed postgis.sql trying to load
> $libdir/postgis-1.4 like this:
>
> -- Deprecation in 1.2.3
> CREATE OR REPLACE FUNCTION spheroid_in(cstring)
> RETURNS spheroid
> AS '$libdir/postgis-1.4','ellipsoid_in'
> LANGUAGE 'C' IMMUTABLE STRICT;
>
> which does not work. So I think the make rule should use " not ' so
> $libdir is expanded, and should say libpostgis instead of postgis. But
> obviously this must work for others, so I suspect there's something odd
> about what I'm doing.
No, I think you've misunderstood this. The build system simply replaces
MODULE_PATHNAME with $libdir/postgis-1.4. The library string
'$libdir/postgis-1.4' is correct because the $libdir substitution is
done by PostgreSQL at run-time and not by the build system.
If this doesn't work, perhaps you're either missing a dependency such as
PROJ/GEOS or you have multiple installations of PostgreSQL and you're
picking up the wrong pg_config? Checking the PostgreSQL server log can
help you here.
> * top-level make install does not seem to descend into doc. Is this
> intentional, or am I doing something wrong in packaging? I didn't
> find this explained in README.postgis, but it doesn't mention docs
> under installation.
Yeah - this is mainly because the documentation has some quite heavy
dependencies for example docbook, xslt and all sorts. We figured that
people would much rather read the documentation online rather than
install half of the known typesetting universe to build the documentation ;)
> * in doc, there are some prebuilt man pages in the distribution tarball,
> plus docbook. docbook is not listed as a dependency in
> README.postgis, but it seems to be. Should I just add it as a
> dependency? The other strategy is to prebuild the docs as part of
> 'make dist' and have the build system be willing to install those
> built doc bits, but it's not like systems that can handle postgresql
> can't handle the space for xml tools, so this probably doesn't make
> sense.
I think I answered this above...
> * liblwgeom does not get installed. The postgis library has U symbols
> for things in lwgeom. There is makefile code to pull in objects from
> liblwgeom.a into libpostgis.so, but that doesn't seem to work.
> Clearly I need to look into this further, but would like to know the
> plan so I can understand where my build is going wrong
>
> Is there supposed to be a liblwgeom.a installed? Where?
Nope - it's currently a static library and so gets manually linked to
everything that needs it. In short, you don't need to worry about this.
HTH,
Mark.
--
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
More information about the postgis-users
mailing list