Thread: pgsql: Move interpreter shared library detection to configure

pgsql: Move interpreter shared library detection to configure

From
Peter Eisentraut
Date:
Move interpreter shared library detection to configure

For building PL/Perl, PL/Python, and PL/Tcl, we need a shared library of
libperl, libpython, and libtcl, respectively.  Previously, this was
checked in the makefiles, skipping the PL build with a warning if no
shared library was available.  Now this is checked in configure, with an
error if no shared library is available.

The previous situation arose because in the olden days, the configure
options --with-perl, --with-python, and --with-tcl controlled whether
frontend interfaces for those languages would be built.  The procedural
languages were added later, and shared libraries were often not
available in the beginning.  So it was decided skip the builds of the
procedural languages in those cases.  The frontend interfaces have since
been removed from the tree, and shared libraries are now available most
of the time, so that setup makes much less sense now.

Also, the new setup allows contrib modules and pgxs users to rely on the
respective PLs being available based on configure flags.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/d664a10f9623fd2198b257e513bce849d439a773

Modified Files
--------------
config/python.m4          |    1 -
configure                 |   41 +++++++++++++++++++++++++++++++++++++----
configure.in              |   38 +++++++++++++++++++++++++++++++++++++-
src/Makefile.global.in    |    3 ---
src/pl/plperl/GNUmakefile |   21 ---------------------
src/pl/plpython/Makefile  |   32 --------------------------------
src/pl/tcl/Makefile       |   26 --------------------------
7 files changed, 74 insertions(+), 88 deletions(-)


Re: pgsql: Move interpreter shared library detection to configure

From
Michael Paquier
Date:
On Sat, May 2, 2015 at 10:39 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
> Move interpreter shared library detection to configure
>
> For building PL/Perl, PL/Python, and PL/Tcl, we need a shared library of
> libperl, libpython, and libtcl, respectively.  Previously, this was
> checked in the makefiles, skipping the PL build with a warning if no
> shared library was available.  Now this is checked in configure, with an
> error if no shared library is available.
>
> The previous situation arose because in the olden days, the configure
> options --with-perl, --with-python, and --with-tcl controlled whether
> frontend interfaces for those languages would be built.  The procedural
> languages were added later, and shared libraries were often not
> available in the beginning.  So it was decided skip the builds of the
> procedural languages in those cases.  The frontend interfaces have since
> been removed from the tree, and shared libraries are now available most
> of the time, so that setup makes much less sense now.
>
> Also, the new setup allows contrib modules and pgxs users to rely on the
> respective PLs being available based on configure flags.

This is hurting OSX platforms at least older than 10.6 (I can get
configure working on my 10.8 laptop), and OpenBSD.
--
Michael


Re: pgsql: Move interpreter shared library detection to configure

From
Peter Eisentraut
Date:
On 5/1/15 10:22 PM, Michael Paquier wrote:
> On Sat, May 2, 2015 at 10:39 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
>> Move interpreter shared library detection to configure

> This is hurting OSX platforms at least older than 10.6 (I can get
> configure working on my 10.8 laptop), and OpenBSD.

The OpenBSD case is intentional, because that would previously silently
skip the build, which is what we wanted to get rid of.

The OS X case, who knows.  I have put back the explicit platform
detection that was previously there to fix that.




Re: pgsql: Move interpreter shared library detection to configure

From
Andrew Dunstan
Date:
On 05/01/2015 11:16 PM, Peter Eisentraut wrote:
> On 5/1/15 10:22 PM, Michael Paquier wrote:
>> On Sat, May 2, 2015 at 10:39 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
>>> Move interpreter shared library detection to configure
>> This is hurting OSX platforms at least older than 10.6 (I can get
>> configure working on my 10.8 laptop), and OpenBSD.
> The OpenBSD case is intentional, because that would previously silently
> skip the build, which is what we wanted to get rid of.
>
> The OS X case, who knows.  I have put back the explicit platform
> detection that was previously there to fix that.
>
>


This has also broken frogmouth, which hitherto was happily build and
running plpython. See
<http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=frogmouth&dt=2015-05-02%2012%3A31%3A05>

cheers

andrew



Re: pgsql: Move interpreter shared library detection to configure

From
Peter Eisentraut
Date:
On 5/2/15 11:09 AM, Andrew Dunstan wrote:
>
> On 05/01/2015 11:16 PM, Peter Eisentraut wrote:
>> On 5/1/15 10:22 PM, Michael Paquier wrote:
>>> On Sat, May 2, 2015 at 10:39 AM, Peter Eisentraut <peter_e@gmx.net>
>>> wrote:
>>>> Move interpreter shared library detection to configure
>>> This is hurting OSX platforms at least older than 10.6 (I can get
>>> configure working on my 10.8 laptop), and OpenBSD.
>> The OpenBSD case is intentional, because that would previously silently
>> skip the build, which is what we wanted to get rid of.
>>
>> The OS X case, who knows.  I have put back the explicit platform
>> detection that was previously there to fix that.
>
> This has also broken frogmouth, which hitherto was happily build and
> running plpython. See
> <http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=frogmouth&dt=2015-05-02%2012%3A31%3A05>

That was an oversight.  I have attempted a fix.



Re: pgsql: Move interpreter shared library detection to configure

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> Move interpreter shared library detection to configure

BTW, the installation documentation concerning Python (installation.sgml
lines 219ff) is badly in need of updates following this commit.

            regards, tom lane