Thread: Python and OpenSSL don't work together

Python and OpenSSL don't work together

From
pgsql-bugs@postgresql.org
Date:
Justin Clift (jclift@iprimus.com.au) reports a bug with a severity of 3
The lower the number the more severe it is.

Short Description
Python and OpenSSL don't work together

Long Description
Hi,

When testing which ./configure options work, I've just discovered that something in the ./configure process generates
theincorrect options when with --with-python and --with-openssl are given, such that the python interface doesn't find
theopenssl headers when it wants them. 

OpenSSL is definitely compiled and working correctly in /opt/openssl, and the ssl.h file is truly at
/opt/openssl/include/openssl/ssl.h

Please see the attached code for what I mean (below).



Sample Code
./configure --p=/opt/postgresql71 --enable-syslog --with-openssl=/opt/openssl --with-python --with-perl
<snip successfull configure messages>
<snip general make messages>
make[4]: Entering directory `/archive/install/postgresql-7.1RC1/src/interfaces/libpq'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/archive/install/postgresql-7.1RC1/src/interfaces/libpq'
make -f Makefile all
make[4]: Entering directory `/archive/install/postgresql-7.1RC1/src/interfaces/perl5'
make[4]: Leaving directory `/archive/install/postgresql-7.1RC1/src/interfaces/perl5'
make[3]: Leaving directory `/archive/install/postgresql-7.1RC1/src/interfaces/perl5'
make[3]: Entering directory `/archive/install/postgresql-7.1RC1/src/interfaces/python'
make -C ../../../src/interfaces/libpq all
make[4]: Entering directory `/archive/install/postgresql-7.1RC1/src/interfaces/libpq'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/archive/install/postgresql-7.1RC1/src/interfaces/libpq'
make -f Makefile
make[4]: Entering directory `/archive/install/postgresql-7.1RC1/src/interfaces/python'
gcc   -I../../../src/interfaces/libpq -I../../../src/include -g -O2 -I/usr/local/include/python1.5
-I/usr/local/include/python1.5-DHAVE_CONFIG_H -c ./pgmodule.c 
In file included from ./pgmodule.c:31:
../../../src/interfaces/libpq/libpq-fe.h:29: openssl/ssl.h: No such file or directory
make[4]: *** [pgmodule.o] Error 1
make[4]: Leaving directory `/archive/install/postgresql-7.1RC1/src/interfaces/python'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/archive/install/postgresql-7.1RC1/src/interfaces/python'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/archive/install/postgresql-7.1RC1/src/interfaces'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/archive/install/postgresql-7.1RC1/src'
make: *** [all] Error 2
$

No file was uploaded with this report

Re: Python and OpenSSL don't work together

From
Tom Lane
Date:
> Justin Clift (jclift@iprimus.com.au) reports a bug with a severity of 3
> When testing which ./configure options work, I've just discovered that something in the ./configure process generates
theincorrect options when with --with-python and --with-openssl are given, such that the python interface doesn't find
theopenssl headers when it wants them. 

Looks like interface/python's GNUmakefile and Setup.in.raw need to
cooperate to pass additional -I fields to the compiler.  Perhaps

        -e 's%@INCLUDES@%$(filter -I%, $(CPPFLAGS))%g' \

in GNUmakefile and the obvious thing in Setup.in.raw.  Would this allow
removing either of the explicit -I switches in Setup.in.raw?

            regards, tom lane