Thread: PostGIS vs. PGXS in 9.0beta3

PostGIS vs. PGXS in 9.0beta3

From
Josh Berkus
Date:
Hackers,

A 9.0b3 tester reported this issue with our single most popular 
PostgreSQL extension, PostGIS:

==================
Postgis makes use of 'PGXS' in postgresql > 8.2. Within postgresql-9, 
datadir and many other variables are defined as multiple values with an 
append operator, like this:

$ grep -i datadir /usr/pgsql-9.0/lib/pgxs/src/Makefile.global
[snip]
datadir := /usr/pgsql-9.0/share

Postgis-1.5.1's Makefile.pgxs makefile override tries to use datadir as 
a flat variable, doesn't try to expand the array-like structure with a 
for loop or similar. So when 'make install' within postgis-1.5 
configured against pgsql-9.x is ran, 'make' treats the second value 
within DATADIR as a command it should just run, which fails:

http://postgis.refractions.net/pipermail/postgis-users/2010-May/026654.html

I've tried the latest tarball SVN exports of both postgis-1.5.x and 
postgis-2.x without success.
==================

I'm unsure of what the resolution of this issue should be ... it seems 
like the fix belongs in PostGIS ... but I also think we can't go final 
until this is resolved, given.

--                                   -- Josh Berkus                                     PostgreSQL Experts Inc.
                           http://www.pgexperts.com
 


Re: PostGIS vs. PGXS in 9.0beta3

From
Robert Haas
Date:
On Tue, Jul 27, 2010 at 1:13 PM, Josh Berkus <josh@agliodbs.com> wrote:
> http://postgis.refractions.net/pipermail/postgis-users/2010-May/026654.html

It's not obvious that there's an unresolved issue here; downthread
there's some indication this might be an environment problem?

http://postgis.refractions.net/pipermail/postgis-users/2010-May/026658.html

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company


Re: PostGIS vs. PGXS in 9.0beta3

From
Andrew Dunstan
Date:

Robert Haas wrote:
> On Tue, Jul 27, 2010 at 1:13 PM, Josh Berkus <josh@agliodbs.com> wrote:
>   
>> http://postgis.refractions.net/pipermail/postgis-users/2010-May/026654.html
>>     
>
> It's not obvious that there's an unresolved issue here; downthread
> there's some indication this might be an environment problem?
>
> http://postgis.refractions.net/pipermail/postgis-users/2010-May/026658.html
>
>   

No, I have just reproduced this with a totally vanilla environment.

I think PostGIS probably needs to patch their makefile(s).

cheers

andrew


Re: PostGIS vs. PGXS in 9.0beta3

From
Tom Lane
Date:
Josh Berkus <josh@agliodbs.com> writes:
> A 9.0b3 tester reported this issue with our single most popular 
> PostgreSQL extension, PostGIS:

> ==================
> Postgis makes use of 'PGXS' in postgresql > 8.2. Within postgresql-9, 
> datadir and many other variables are defined as multiple values with an 
> append operator, like this:

> $ grep -i datadir /usr/pgsql-9.0/lib/pgxs/src/Makefile.global
> [snip]
> datadir := /usr/pgsql-9.0/share

This analysis is nonsense on its face --- := is not an append operator
and we do not have any multiple values for datadir.

The referenced postgis-users thread seems to indicate that the postgis
guys found and fixed a problem in their own makefiles.  If not, we need
a clearer description of what they think the problem is.
        regards, tom lane


Re: PostGIS vs. PGXS in 9.0beta3

From
Andrew Dunstan
Date:

Tom Lane wrote:
> Josh Berkus <josh@agliodbs.com> writes:
>   
>> A 9.0b3 tester reported this issue with our single most popular 
>> PostgreSQL extension, PostGIS:
>>     
>
>   
>> ==================
>> Postgis makes use of 'PGXS' in postgresql > 8.2. Within postgresql-9, 
>> datadir and many other variables are defined as multiple values with an 
>> append operator, like this:
>>     
>
>   
>> $ grep -i datadir /usr/pgsql-9.0/lib/pgxs/src/Makefile.global
>> [snip]
>> datadir := /usr/pgsql-9.0/share
>>     
>
> This analysis is nonsense on its face --- := is not an append operator
> and we do not have any multiple values for datadir.
>
> The referenced postgis-users thread seems to indicate that the postgis
> guys found and fixed a problem in their own makefiles.  If not, we need
> a clearer description of what they think the problem is.
>   


The real problem has nothing to do with any of the analysis, as you say. 
It is this: they have an override file for PGXS and it uses 
$(mkinstalldirs) which we got rid of about a year ago. So apparently 
they haven't been testing much against any of our alphas or betas or 
they would have seen this long ago. The correct fix is to do the 
following in the PostGIS source root:
   sed -i -e 's/mkinstalldirs/MKDIR_P/' postgis/Makefile.pgxs

cheers

andrew


Re: PostGIS vs. PGXS in 9.0beta3

From
Mark Cave-Ayland
Date:
Andrew Dunstan wrote:

> The real problem has nothing to do with any of the analysis, as you say. 
> It is this: they have an override file for PGXS and it uses 
> $(mkinstalldirs) which we got rid of about a year ago. So apparently 
> they haven't been testing much against any of our alphas or betas or 
> they would have seen this long ago. The correct fix is to do the 
> following in the PostGIS source root:
> 
>    sed -i -e 's/mkinstalldirs/MKDIR_P/' postgis/Makefile.pgxs
> 
> cheers
> 
> andrew

Hmmm that's totally wrong - the override in Makefile.pgxs should only 
ever be loaded for PostgreSQL 8.3 and 8.4, and not PostgreSQL 9.0 since 
it already has the correct installation paths.

What I suspect is that you're actually getting bitten by this:

http://markmail.org/message/k7iolbazhrqhijfk#query:pg_config%20jun%202007+page:1+mid:rqk6ux2e7npqbrzf+state:results

Or, in other words, configure is picking up the wrong pg_config. Since 
the path fix in the thread was not backported to < 8.3, then the 
presence of an another pg_config for PostgreSQL < 8.3 in PATH will break 
things :(


ATB,

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


Re: PostGIS vs. PGXS in 9.0beta3

From
Andrew Dunstan
Date:

Mark Cave-Ayland wrote:
> Andrew Dunstan wrote:
>
>> The real problem has nothing to do with any of the analysis, as you 
>> say. It is this: they have an override file for PGXS and it uses 
>> $(mkinstalldirs) which we got rid of about a year ago. So apparently 
>> they haven't been testing much against any of our alphas or betas or 
>> they would have seen this long ago. The correct fix is to do the 
>> following in the PostGIS source root:
>>
>>    sed -i -e 's/mkinstalldirs/MKDIR_P/' postgis/Makefile.pgxs
>>
>> cheers
>>
>> andrew
>
> Hmmm that's totally wrong - the override in Makefile.pgxs should only 
> ever be loaded for PostgreSQL 8.3 and 8.4, and not PostgreSQL 9.0 
> since it already has the correct installation paths.
>
> What I suspect is that you're actually getting bitten by this:
>
> http://markmail.org/message/k7iolbazhrqhijfk#query:pg_config%20jun%202007+page:1+mid:rqk6ux2e7npqbrzf+state:results 
>
>
> Or, in other words, configure is picking up the wrong pg_config. Since 
> the path fix in the thread was not backported to < 8.3, then the 
> presence of an another pg_config for PostgreSQL < 8.3 in PATH will 
> break things :(

No, the configure test is wrong. Here's what's in configure.ac:

   dnl Temporary hack until minimum PostgreSQL version is 8.5:   dnl If PostgreSQL < 8.5 is detected, trigger the
inclusionof the   new versioned PGXS targets   PGXSOVERRIDE=0   if test ! "$PGSQL_MINOR_VERSION" -ge 5; then
PGXSOVERRIDE=1  fi
 


Of course, we don't have any such thing as 8.5.

cheers

andrew







Re: PostGIS vs. PGXS in 9.0beta3

From
Mark Cave-Ayland
Date:
Andrew Dunstan wrote:

> No, the configure test is wrong. Here's what's in configure.ac:
> 
> 
>    dnl Temporary hack until minimum PostgreSQL version is 8.5:
>    dnl If PostgreSQL < 8.5 is detected, trigger the inclusion of the
>    new versioned PGXS targets
>    PGXSOVERRIDE=0
>    if test ! "$PGSQL_MINOR_VERSION" -ge 5; then
>            PGXSOVERRIDE=1
>    fi
> 
> 
> Of course, we don't have any such thing as 8.5.

Ah wait - I see. The fix is in already in the 1.5 branch, it just hasn't 
hit a release yet :(

http://trac.osgeo.org/postgis/changeset/5421/branches/1.5/configure.ac

Looks like we need to push a new release in time for 9.0...


ATB,

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