Hi,

I have PostgreSQL 8.4.4 in /opt/BBCpostgresql/8.4.4 and can't build
DBD-Pg-2.17.1 with that.  My troubles are caused by the fact that other
PostgreSQL versions exist, in particular the one supplied by Sun, which
is visible under /usr.

(My environment includes this:
POSTGRES_INCLUDE=/opt/BBCpostgresql/8.4.4/include
POSTGRES_LIB=/opt/BBCpostgresql/8.4.4/lib -L/usr/sfw/lib -lssl -lcrypto
The README also mentions POSTGRES_HOME, but doesn't say what that could
meaningfully be set to -- perhaps the home directory of a user postgres,
if it exists?)

I could solve the first problem, which was that "perl Makefile.PL" used
the wrong pg_config (the one in /usr/bin).  I fiddled with my PATH, which
isn't a good workaround in my opinion.  How about using another environment
variable for that?

The next problem was that libssl wasn't found.  I looked at how
POSTGRES_LIB is used in Makefile.PL and used the value shown above.
I don't think unexperienced people would know what to do about libraries
located in unusual paths, so perhaps the README could mention how to do
that.

Here's what I have now:
> perl Makefile.PL
Configuring DBD::Pg 2.17.1
PostgreSQL version: 80404 (default port: 5432)
POSTGRES_HOME: (not set)
POSTGRES_INCLUDE: /opt/BBCpostgresql/8.4.4/include
POSTGRES_LIB: /opt/BBCpostgresql/8.4.4/lib -L/usr/sfw/lib -lssl -lcrypto
OS: solaris
Using DBI 1.613 (for perl 5.012001 on i86pc-solaris-64int) installed in
 /opt/BBCperl/5.12.1/lib/i86pc-solaris-64int/auto/DBI/
Writing Makefile for DBD::Pg

With this, make succeed with just one warning:
"quote.c", line 334: warning: assignment type mismatch:
        pointer to char "=" pointer to const char

The linker command looks ok:
LD_RUN_PATH="/usr/sfw/lib:/opt/BBCpostgresql/8.4.4/lib" cc  -G Pg.o
  dbdimp.o quote.o types.o  -o blib/arch/auto/DBD/Pg/Pg.so
  -L/opt/BBCpostgresql/8.4.4/lib -L/usr/sfw/lib -lssl -lcrypto -lpq -lm
(I've forgotten whether that usage of LD_RUN_PATH is the right way to
do it -- I'd have used -R instead.)
  
However, the new Pg.so refers to the wrong library, and "make test" fails:
> ldd blib/arch/auto/DBD/Pg/Pg.so | grep pq
          libpq.so.4 =>    /usr/lib/libpq.so.4
It should use /opt/BBCpostgresql/8.4.4/lib/libpq.so.5 instead.
Can anyone tell me how to build the module so that it does that?

(If the address I'm mailing to is a mail list, please also send your
response to my mail address r...@bb-c.de.)

Thanks, Rainer
-- 
Rainer J. H. Brandt
Brandt & Brandt Computer GmbH
Am Wiesenpfad 6, 53340 Meckenheim
Geschäftsführer: Rainer J. H. Brandt und Volker A. Brandt
Handelsregister: Amtsgericht Bonn, HRB 10513

RFC 5322: "Each line [...] SHOULD be no more than 78 characters"

Reply via email to