From: Bernd E. <eid...@we...> - 2008-11-21 17:17:43
|
I'm cursed. I never can compile a postgres driver for naviserver from scratch. Here's my tale - maybe you can hint me to an obvious mistake: I compiled a Postgres 8.2.11 from source into /opt/pgsql8.2.11 Then I checked out /modules/nsdbpg. I changed in the Makefile the line MODLIBS = -lnsdb -lpq to MODLIBS = -L/usr/local/ns/include/nsdb.h -L/opt/pgsql8.2.11/lib/libpq.a and started make with the line make NAVISERVER=/usr/local/ns CFLAGS="-I/opt/pgsql8.2.11/lib -I/opt/pgsql8.2.11/include -I/usr/local/ns/include" It compiles. The only output is: gcc -I/opt/pgsql8.2.11/lib -I/opt/pgsql8.2.11/include -I/usr/local/ns/include -c -o nsdbpg.o nsdbpg.c gcc -I/opt/pgsql8.2.11/lib -I/opt/pgsql8.2.11/include -I/usr/local/ns/include -c -o tclcmds.o tclcmds.c tclcmds.c: In function ‘stream_actually_write’: tclcmds.c:830: warning: ‘Ns_ConnWrite’ is deprecated (declared at /usr/local/ns/include/ns.h:1111) /bin/rm -Rf nsdbpg.so gcc -shared -I/opt/pgsql8.2.11/lib -I/opt/pgsql8.2.11/include -I/usr/local/ns/include -L/usr/local/ns/lib -o nsdbpg.so nsdbpg.o tclcmds.o -L/usr/local/ns/include/nsdb.h -L/opt/pgsql8.2.11/lib/libpq.a -lnsthread -lnsd -L/usr/local/ns/lib -ltcl8.4 -ldl -lgcc_s -lieee -lm -Wl,--export-dynamic -L/usr/local/ns/lib -Wl,-rpath,:/usr/local/ns/lib So this warning about Ns_ConnWrite - ignored. No doing a "ldd nsdbpg.so" returns linux-gate.so.1 => (0xb7fce000) libnsthread.so => /usr/local/ns/lib/libnsthread.so (0xb7fbe000) libnsd.so => /usr/local/ns/lib/libnsd.so (0xb7f46000) libtcl8.4.so => /usr/local/ns/lib/libtcl8.4.so (0xb7e90000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7e87000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7e7c000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e57000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d08000) libz.so.1 => /usr/lib/libz.so.1 (0xb7cf2000) libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7cc0000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7ca8000) /lib/ld-linux.so.2 (0xb7fcf000) Hm. On another server "libpq" and "libnsdb" come up, missing here. When trying to run naviserver, called from my startscript with an exported LD_LIBRARY_PATH of export LD_LIBRARY_PATH=/usr/local/ns/lib:/usr/local/ns/lib/xotcl1.6.2:/usr/local/ns/bin:/opt/pgsql8.2.11/lib:/usr/local/lib including the postgres directory, I get: [21/Nov/2008:18:23:52][5641.b7c426b0][-main-] Error: modload: /usr/local/ns/bin/nsdbpg.so: couldn't load file "/usr/local/ns/bin/nsdbpg.so": /usr/local/ns/bin/nsdbpg.so: undefined symbol: PQsetdbLogin Can you help me, Veronica Mars? Bernd. |
From: Bernd E. <eid...@we...> - 2008-11-24 07:19:27
|
Stephen, Vlad, thanks: $ make NAVISERVER=/usr/local/ns POSTGRES=/opt/pgsql8.2.11 did the job. I was lead into the wrong direction, because the last time I tried, the solution found was to change the Makefile and I left a notice in our lifesaver intranet archive. Doing it again now, I did not try the obvious simple thing. Bernd. ---- "Don't cry. It's a waste of good suffering." (Pinhead, Hellraiser I) |
From: Vlad S. <vl...@cr...> - 2008-11-21 17:26:01
|
change MODLIBS = -L/usr/local/ns/include/nsdb.h -L/opt/pgsql8.2.11/lib/libpq.a to MODLIBS = -lnsdb -L/opt/pgsql8.2.11/lib -lpq Bernd Eidenschink wrote: > I'm cursed. I never can compile a postgres driver for naviserver > from scratch. > > Here's my tale - maybe you can hint me to an obvious mistake: > > I compiled a Postgres 8.2.11 from source into > /opt/pgsql8.2.11 > > Then I checked out /modules/nsdbpg. > > I changed in the Makefile the line > MODLIBS = -lnsdb -lpq > > to > MODLIBS = -L/usr/local/ns/include/nsdb.h -L/opt/pgsql8.2.11/lib/libpq.a > > and started make with the line > make NAVISERVER=/usr/local/ns > CFLAGS="-I/opt/pgsql8.2.11/lib -I/opt/pgsql8.2.11/include -I/usr/local/ns/include" > > It compiles. The only output is: > gcc -I/opt/pgsql8.2.11/lib -I/opt/pgsql8.2.11/include -I/usr/local/ns/include -c -o > nsdbpg.o nsdbpg.c > gcc -I/opt/pgsql8.2.11/lib -I/opt/pgsql8.2.11/include -I/usr/local/ns/include -c -o > tclcmds.o tclcmds.c > tclcmds.c: In function ‘stream_actually_write’: > tclcmds.c:830: warning: ‘Ns_ConnWrite’ is deprecated (declared > at /usr/local/ns/include/ns.h:1111) > /bin/rm -Rf nsdbpg.so > gcc -shared -I/opt/pgsql8.2.11/lib -I/opt/pgsql8.2.11/include -I/usr/local/ns/include -L/usr/local/ns/lib -o > nsdbpg.so nsdbpg.o > tclcmds.o -L/usr/local/ns/include/nsdb.h -L/opt/pgsql8.2.11/lib/libpq.a -lnsthread -lnsd -L/usr/local/ns/lib -ltcl8.4 -ldl -lgcc_s -lieee -lm -Wl,--export-dynamic -L/usr/local/ns/lib -Wl,-rpath,:/usr/local/ns/lib > > So this warning about Ns_ConnWrite - ignored. > > No doing a "ldd nsdbpg.so" > returns > > linux-gate.so.1 => (0xb7fce000) > libnsthread.so => /usr/local/ns/lib/libnsthread.so (0xb7fbe000) > libnsd.so => /usr/local/ns/lib/libnsd.so (0xb7f46000) > libtcl8.4.so => /usr/local/ns/lib/libtcl8.4.so (0xb7e90000) > libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7e87000) > libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7e7c000) > libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e57000) > libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d08000) > libz.so.1 => /usr/lib/libz.so.1 (0xb7cf2000) > libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7cc0000) > libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7ca8000) > /lib/ld-linux.so.2 (0xb7fcf000) > > > Hm. On another server "libpq" and "libnsdb" come up, > missing here. > > When trying to run naviserver, called from my startscript > with an exported LD_LIBRARY_PATH of > > export > LD_LIBRARY_PATH=/usr/local/ns/lib:/usr/local/ns/lib/xotcl1.6.2:/usr/local/ns/bin:/opt/pgsql8.2.11/lib:/usr/local/lib > > including the postgres directory, I get: > > [21/Nov/2008:18:23:52][5641.b7c426b0][-main-] Error: > modload: /usr/local/ns/bin/nsdbpg.so: couldn't load > file "/usr/local/ns/bin/nsdbpg.so": /usr/local/ns/bin/nsdbpg.so: undefined > symbol: PQsetdbLogin > > Can you help me, Veronica Mars? > > Bernd. > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel |
From: Stephen D. <sd...@gm...> - 2008-11-21 17:28:50
|
On 11/21/08, Bernd Eidenschink <eid...@we...> wrote: > > I'm cursed. I never can compile a postgres driver for naviserver > from scratch. > > Here's my tale - maybe you can hint me to an obvious mistake: > > I compiled a Postgres 8.2.11 from source into > /opt/pgsql8.2.11 > > Then I checked out /modules/nsdbpg. > > I changed in the Makefile the line > MODLIBS = -lnsdb -lpq You shouldn't need to edit the Makefile. NAVISERVER points to the base of your naviserver install, and POSTGRES points the base of your postgres install. So, $ make NAVISERVER=/usr/local/ns POSTGRES=/opt/pgsql8.2.11 (The Makefile uses -rpath to embed the location of postgres into nsdbpg, so you shouldn't need to use LD_LIBRARY_PATH) |