Opened 8 years ago

Closed 7 years ago

#3506 closed defect (worksforme)

build variable not defined ? configure should error out if SQL Preprocessor is not picked up

Reported by: darkblueb Owned by: pramsey
Priority: medium Milestone: PostGIS 2.4.0
Component: postgis Version: 2.2.x
Keywords: autotools, make Cc:

Description

something is mysteriously failing in the build — autotools generated environment variables ? no idea.. This is reproducible (for me) on Ubuntu 1404, with PostGIS versions tag 221, and 22branch; It could be something about this server, as it is used for other things too ! But the bug is that configure is not failing, and a spurious error is generated later about VERSION. —-

srcs_i7d/postgis_221$ make clean; ./autogen.sh && ./configure && make

...
I../libpgcommon postgis.sql.in | grep -v '^#' | \
/usr/bin/perl -lpe "s'MODULE_PATHNAME'\$libdir/postgis-2.2'g" > postgis.sql
/bin/sh: 1: I../libpgcommon: not found
/usr/bin/perl ../utils/create_undef.pl postgis.sql 94 > uninstall_postgis.sql
/usr/bin/perl ../utils/postgis_proc_upgrade.pl postgis.sql UNUSED > postgis_upgrade.sql.in
Unable to locate target new version number in postgis.sql
Makefile:161: recipe for target 'postgis_upgrade.sql.in' failed
make[1]: *** [postgis_upgrade.sql.in] Error 255
make[1]: *** Deleting file 'postgis_upgrade.sql.in'
make[1]: Leaving directory '/home/shared/srcs_i7d/postgis_221/postgis'

Attachments (1)

postgis-makefile-miss0.png (170.9 KB ) - added by darkblueb 7 years ago.
compare of an incomplete Makefile output versus stock output

Download all attachments as: .zip

Change History (19)

comment:1 by robe, 8 years ago

I notice you have

/bin/sh: 1: I../libpgcommon: not found

That looks pretty suspicious. So it seem slike you libpgcommon include might be missing.

I would expect Ubuntu build log to look pretty much like debbie's debian build which for 2.2. looks like this for building libpgcommon:

---- Making all in libpgcommon
make[1]: Entering directory '/var/lib/jenkins/workspace/postgis/branches/2.2/libpgcommon'
gcc -g -O2 -I../liblwgeom -I/var/lib/jenkins/workspace/pg/rel/pg9.4w64/include/postgresql/server   -fPIC -DPIC  -Wall -Wmissing-prototypes  -c -o gserialized_gist.o gserialized_gist.c
gcc -g -O2 -I../liblwgeom -I/var/lib/jenkins/workspace/pg/rel/pg9.4w64/include/postgresql/server   -fPIC -DPIC  -Wall -Wmissing-prototypes  -c -o lwgeom_transform.o lwgeom_transform.c
gcc -g -O2 -I../liblwgeom -I/var/lib/jenkins/workspace/pg/rel/pg9.4w64/include/postgresql/server   -fPIC -DPIC  -Wall -Wmissing-prototypes  -c -o lwgeom_cache.o lwgeom_cache.c
gcc -g -O2 -I../liblwgeom -I/var/lib/jenkins/workspace/pg/rel/pg9.4w64/include/postgresql/server   -fPIC -DPIC  -Wall -Wmissing-prototypes  -c -o lwgeom_pg.o lwgeom_pg.c
ar rs libpgcommon.a gserialized_gist.o lwgeom_transform.o lwgeom_cache.o lwgeom_pg.o 
ar: creating libpgcommon.a
make[1]: Leaving directory '/var/lib/jenkins/workspace/postgis/branches/2.2/libpgcommon'

http://debbie.postgis.net:8080/job/PostGIS_Regress/3473/consoleFull

comment:2 by strk, 8 years ago

It sounds like SQLPP being missing, should be checked against output of ./configure

comment:3 by pramsey, 8 years ago

Milestone: PostGIS 2.2.2PostGIS 2.2.3

comment:4 by pramsey, 8 years ago

This still going on? Looking at configure.ac I don't see how you could get into a state w/o SQLPP defined, it's got a guard on the empty-value case.

comment:5 by darkblueb, 8 years ago

ugh - revisited today.. same bat-server, same bat-error.. It is Ubuntu 1404 and apt.postgresql.org installed pg 9.4 and pg 9.5 both.. you know, port 5433 for the second "cluster" ..

I updated my source tree with PostGIS svn version 15045, then

PG_CONFIG=/usr/lib/postgresql/9.5/bin/pg_config ./configure
PG_CONFIG=/usr/lib/postgresql/9.5/bin/pg_config make

the error changes slightly if you omit the second PG_CONFIG and call make alone. Its probably me, but, this is occurring reproducibly.

here is the output

$ PG_CONFIG=/usr/lib/postgresql/9.5/bin/pg_config ./configure
...
config.status: executing po-directories commands

  PostGIS is now configured for x86_64-unknown-linux-gnu

 -------------- Compiler Info ------------- 
  C compiler:           gcc -g -O2
  SQL preprocessor:     

 -------------- Dependencies -------------- 
  GEOS config:          /usr/local/bin/geos-config
  GEOS version:         3.5.1
  GDAL config:          /usr/local/bin/gdal-config
  GDAL version:         2.1.0
  PostgreSQL config:    /usr/lib/postgresql/9.5/bin/pg_config
  PostgreSQL version:   PostgreSQL 9.5.4
  PROJ4 version:        48
  Libxml2 config:       /usr/bin/xml2-config
  Libxml2 version:      2.9.1
  JSON-C support:       yes
  PCRE support:         yes
  PostGIS debug level:  0
  Perl:                 /usr/bin/perl

 --------------- Extensions --------------- 
  PostGIS Raster:       enabled
  PostGIS Topology:     enabled
  SFCGAL support:       disabled
  Address Standardizer support:       enabled

 -------- Documentation Generation -------- 
  xsltproc:             /usr/bin/xsltproc
  xsl style sheets:     /usr/share/xml/docbook/stylesheet/nwalsh
  dblatex:              
  convert:              /usr/bin/convert
  mathml2.dtd:          http://www.w3.org/Math/DTD/mathml2/mathml2.dtd


$ PG_CONFIG=/usr/lib/postgresql/9.5/bin/pg_config make
...
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -I/usr/include/mit-krb5 -fPIC -pie -fno-omit-frame-pointer -fpic -shared -o postgis-2.3.so postgis_module.o lwgeom_accum.o lwgeom_spheroid.o lwgeom_ogc.o lwgeom_functions_analytic.o lwgeom_inout.o lwgeom_functions_basic.o lwgeom_btree.o lwgeom_box.o lwgeom_box3d.o lwgeom_geos.o lwgeom_backend_api.o lwgeom_geos_prepared.o lwgeom_geos_clean.o lwgeom_geos_relatematch.o lwgeom_export.o lwgeom_in_gml.o lwgeom_in_kml.o lwgeom_in_geohash.o lwgeom_in_geojson.o lwgeom_in_encoded_polyline.o lwgeom_triggers.o lwgeom_dump.o lwgeom_dumppoints.o lwgeom_functions_lrs.o lwgeom_functions_temporal.o long_xact.o lwgeom_sqlmm.o lwgeom_rtree.o lwgeom_transform.o lwgeom_window.o gserialized_typmod.o gserialized_gist_2d.o gserialized_gist_nd.o brin_2d.o brin_nd.o brin_common.o gserialized_estimate.o geography_inout.o geography_btree.o geography_measurement.o geography_measurement_trees.o geometry_inout.o -L/usr/lib/x86_64-linux-gnu -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5 -L/usr/lib/x86_64-linux-gnu/mit-krb5  -Wl,--as-needed  ../libpgcommon/libpgcommon.a ../liblwgeom/.libs/liblwgeom.a  -L/usr/local/lib  -lgeos_c -lproj  -ljson-c -lxml2   -Wl,--exclude-libs,ALL 
I../libpgcommon postgis.sql.in | grep -v '^#' | \
/usr/bin/perl -lpe "s'MODULE_PATHNAME'\$libdir/postgis-2.3'g;s'@extschema@\.''g" > postgis.sql
/bin/sh: 1: I../libpgcommon: not found
I../libpgcommon postgis.sql.in | grep -v '^#' | \
/usr/bin/perl -lpe "s'MODULE_PATHNAME'\$libdir/postgis-2.3'g" > postgis_for_extension.sql
/bin/sh: 1: I../libpgcommon: not found
/usr/bin/perl ../utils/create_undef.pl postgis.sql 95 > uninstall_postgis.sql
/usr/bin/perl ../utils/postgis_proc_upgrade.pl postgis.sql UNUSED > postgis_upgrade.sql.in
Unable to locate target new version number in postgis.sql
Makefile:189: recipe for target 'postgis_upgrade.sql.in' failed
make[1]: *** [postgis_upgrade.sql.in] Error 255
make[1]: *** Deleting file 'postgis_upgrade.sql.in'
make[1]: Leaving directory '/home/shared/srcs_i7d/postgis_trunk/postgis'
GNUmakefile:16: recipe for target 'all' failed
make: *** [all] Error 1

comment:6 by robe, 8 years ago

You have postgresql-server-dev-9.5 package installed right?

I thought that gives you a less cryptic error, like dev package required, but I forget.

comment:7 by darkblueb, 8 years ago

server-dev supplies the pg_config

/var/cache/apt/archives/postgresql-server-dev-9.5_9.5.4-1.pgdg14.04+1_amd64.deb

comment:8 by robe, 8 years ago

darkblue_b are you all set with this. I thought you said you figured out the issue. If so put it here for posterity and close out.

comment:9 by robe, 8 years ago

Milestone: PostGIS 2.2.3PostGIS 2.4.0

comment:10 by darkblueb, 7 years ago

-investigation-cont-

Last edited 7 years ago by darkblueb (previous) (diff)

comment:11 by darkblueb, 7 years ago

Last edited 7 years ago by darkblueb (previous) (diff)

comment:12 by darkblueb, 7 years ago

VERSION is a false lead.. postgis.sql fails to build and afterwards, VERSION is not found because the whole file is empty .. looking more closely at postgis/Makefile #158 area

by darkblueb, 7 years ago

Attachment: postgis-makefile-miss0.png added

compare of an incomplete Makefile output versus stock output

comment:13 by robe, 7 years ago

Hey Brian,

I found this interesting tidbit of a guy having what looks like similar issue to yours. His was on Solaris, but still could be the same issue. https://lists.osgeo.org/pipermail/postgis-users/2014-March/038761.html


Thanks, but I figured out the problem after a little more digging.

The problem was that on solaris 11.1, /usr/bin/gcc is a symlink pointing to
/usr/gcc/4.5/bin/gcc and /usr/bin was in the PATH env var, but there is no
corresponding symlink for cpp.  After putting /usr/gcc/4.5/bin in the path,
the configure script was able to find cpp and set SQLPP appropriately.

Unfortunately the build fails further down with some linkling problems, but
I'll do a little more research on my own before following up on the mailing
list.

Thanks again for the help!  Much appreciated!

— NEVERMIND THIS NOTE, my Ubuntu 15.04 returns unknown too, but I can make and compile just fine —-


I'm not near an Ubuntu machine at moment, but I don't recall the gcc registering itself as

x86_64-unknown-linux-gnu like yours does. granted I've never paid that close attention


Last edited 7 years ago by robe (previous) (diff)

comment:14 by robe, 7 years ago

Brian,

Just curious what your cpp returns

cpp --verion

return this for me:

cpp (Ubuntu 4.9.2-10ubuntu13) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Version 0, edited 7 years ago by robe (next)

comment:15 by darkblueb, 7 years ago

yes - this looks right .. 'SQL preprocessor' not defined would fit with the symptoms here.. Small nit - the PostGIS build is fragile in an unexpected way, rather than 'cpp broken' here, since I used the package manager to install all the dev-tools, and I build other software fairly regularly.

meanwhile,

dbb@i7d:/home/shared$ cpp --version
cpp (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

comment:16 by robe, 7 years ago

So where is your cpp installed. I'm wondering if one of the path settings is getting in the way.

There was as I recall some funkiness with order of PGXS which sometimes kicked in a bogus Perl. I don't think that's the issue here though.

FWIW, I have 2 PostgreSQL installed on my Ubuntu box as well. 9.4 and 9.6 both installed from apt-postgresql packages.

comment:17 by robe, 7 years ago

Summary: build variable not defined ?build variable not defined ? configure should error out if SQL Preprocessor is not picked up

comment:18 by dbaston, 7 years ago

Resolution: worksforme
Status: newclosed

works for Paul

Note: See TracTickets for help on using tickets.