Thank you for your response You were right ! as always - adding "nostrip" to DEB_BUILD_OPTIONS works.
Thank you. On Mon, Nov 25, 2024 at 1:06 PM Gustaf Neumann (sslmail) <neum...@wu.ac.at> wrote: > Dear Sassy, > > not sure what’s wrong. You installed the NaviServer modules at an unusual > place, from where normally shared libraries are loaded. Can it be, that > something stripped symbols in your installation process? > > Anyhow, on a Debian like system you should have: > > $ cd /usr/local/ns/bin/ > $ for f in nsdbpg.so nsdb.so ; do echo ---$f--- && (nm $f | fgrep Module); > done > ---nsdbpg.so--- > 0000000000008598 R Ns_ModuleVersion > ---nsdb.so--- > 00000000000011a0 T Ns_ModuleInit > 0000000000002030 R Ns_ModuleVersion > > > As a reference, you find the sample configuration file for OpenACS in the > NaviServer repository, which loads per default the ndsbpg module. > > You can also check the bookworm docker images at [1]. With this, you can > do: > > docker run --rm -it --entrypoint /bin/bash > gustafn/naviserver-pg:latest-bookworm > # apt -y install binutils > > > … and the run the commands with nm above… > > All the best > -g > PS: i use normally for quick installations > https://github.com/gustafn/install-ns This gives a wide range of options > (tcl versions, naviserver versions, better malloc library, ….) > > [1] https://hub.docker.com/repository/docker/gustafn/naviserver-pg/general > > > On 25.11.2024, at 11:19, Sassy Natan <sas...@gmail.com> wrote: > > Sorry once again, > > I was thinking I solved it but I still have the same problem. > > I'm running head version of the repo: commit > 5232c61ff982ab232827746298257d7859010e28 (HEAD -> main, origin/main, > origin/HEAD), Author: Gustaf Neumann <neum...@wu-wien.ac.at>, Date: Sun > Nov 3 11:33:23 2024 +0100 > > When starting the server: > > [25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] Notice: > modload: loading module nsgdchart from file > /usr/lib/x86_64-linux-gnu/naviserver/bin/nsgdchart.so > [25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] Notice: > modload: loading module nsdb from file > /usr/lib/x86_64-linux-gnu/naviserver/bin/nsdb.so > > > > > > *[25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] Debug(sql): > nsdb: Add DB pool: > main[25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] Error: > dbdrv: no such driver > 'postgres'[25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] > Debug(sql): nsdb: Add DB pool: > subquery[25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] > Debug(sql): nsdb: Add DB pool: > log[25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] Error: > dbinit: no such default pool > 'main'*[25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] > Notice: modload: loading module nsdbpg from file > /usr/lib/x86_64-linux-gnu/naviserver/bin/nsdbpg.so > > > *[25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] Error: > modload: /usr/lib/x86_64-linux-gnu/naviserver/bin/nsdbpg.so: cannot find > symbol "Ns_ModuleInit": /usr/lib/x86_64-linux-gnu/naviserver/bin/nsdbpg.so: > undefined symbol: > _Ns_ModuleInit[25/Nov/2024:10:13:03][29267.7be2d5a19840][-main:localhost-] > Fatal: modload: failed to load module > '/usr/lib/x86_64-linux-gnu/naviserver/bin/nsdbpg.so'* > > > In the README file in nsdbpg git repo the config point to set the driver > like this: > ns_param driver postgres > > but in the previous version it was nsdbpg - is this valid? > > Here is my config: > > ns_section "ns/server/${server}/modules" { > ns_param nsdb ${homedir}/bin/nsdb.so > } > > ns_section "ns/server/${server}/modules" { > ns_param nsdbpg ${homedir}/bin/nsdbpg.so > } > > ns_section "ns/db/pools" { > ns_param main "Main" > ns_param subquery "Subquery" > ns_param log "Log" > } > > ns_section "ns/db/pool/main" { > ns_param driver *postgres* > ns_param datasource > ${pg_db_host}:${pg_db_port}:${pg_db_name} > ns_param user ${pg_db_user} > ns_param password ${pg_db_password} > ns_param connections 15 > ns_param LogMinDuration 0.01 > ;# when SQL logging is on, log only statements above > this duration > ns_param logsqlerrors true > ;# Verbose SQL query error logging > ns_param verbose true > ;# Verbose error logging > ns_param maxidle 10 > ;# Max time to keep idle db conn open > ns_param maxopen 10 > ;# Max time to keep active db conn open > ns_param extendedtableinfo on > } > > ns_section "ns/db/pool/subquery" { > ns_param driver *postgres* > ns_param datasource > ${pg_db_host}:${pg_db_port}:${pg_db_name} > ns_param user ${pg_db_user} > ns_param password ${pg_db_password} > ns_param connections 15 > ns_param LogMinDuration 0.01 > ;# when SQL logging is on, log only statements above > this duration > ns_param logsqlerrors true > ;# Verbose SQL query error logging > ns_param verbose true > ;# Verbose error logging > ns_param maxidle 10 > ;# Max time to keep idle db conn open > ns_param maxopen 10 > ;# Max time to keep active db conn open > ns_param extendedtableinfo on > } > > ns_section "ns/db/pool/log" { > ns_param driver *postgres* > ns_param datasource > ${pg_db_host}:${pg_db_port}:${pg_db_name} > ns_param user ${pg_db_user} > ns_param password ${pg_db_password} > ns_param connections 15 > ns_param LogMinDuration 0.01 > ;# when SQL logging is on, log only statements above > this duration > ns_param logsqlerrors true > ;# Verbose SQL query error logging > ns_param verbose true > ;# Verbose error logging > ns_param maxidle 10 > ;# Max time to keep idle db conn open > ns_param maxopen 10 > ;# Max time to keep active db conn open > ns_param extendedtableinfo on > } > > # > # > # Accessing DB pools > # > # In the case of virtual servers you can give different virtual > # servers access to different databases, or you can let them access > # them all. AOLserver 3.x does not use virtual servers so the only > # useful value is "*", but if you use one config file for multiple nsd > # processes, or you are using a version of AOLserver that supports > # virtual servers, then you should list the pools you want to access. > # > ns_section "ns/server/${server}/db" { > ns_param pools main,subquery,log > ns_param defaultpool "main" > } > > Any feedback is welcome. > > > On Mon, Nov 25, 2024 at 11:33 AM Sassy Natan <sas...@gmail.com> wrote: > >> Please ignore... >> >> I forgot to load the nsdb.so module... >> >> All good :-) >> >> Thank You. >> >> >> On Mon, Nov 25, 2024 at 11:22 AM Sassy Natan <sas...@gmail.com> wrote: >> >>> Hi Group, >>> >>> I was trying to install naviserver 4.99.31-1 on my ubuntu 24.04 server. >>> I can provide to the community a debian package I have built to support >>> this project (see attached picture). >>> >>> However, It seems that I have an issue with the naviserver-nsdbpg module. >>> >>> I'm using postgresql-17 (17.2-1.pgdg24.04) on this server, and I was >>> successfully build the nsdbpg module using "make >>> PGLIB=$/usr/lib/postgresql/17/lib/ PGINCLUDE=/usr/include/postgresql/". >>> >>> The nsdbpg.so file was created successfully with no error on the >>> compilation and linkage. >>> >>> When trying to load naviserver I'm getting the following error message: >>> >>> Error: modload: /usr/lib/x86_64-linux-gnu/naviserver/bin/nsdbpg.so: >>> cannot find symbol "Ns_ModuleInit": >>> /usr/lib/x86_64-linux-gnu/naviserver/bin/nsdbpg.so: undefined symbol: >>> _Ns_ModuleInit >>> >>> Running ldd on the file >>> /usr/lib/x86_64-linux-gnu/naviserver/bin/nsdbpg.so provide this output: >>> >>> linux-vdso.so.1 (0x00007fff676fc000) >>> libnsdb-4.99.31.so.1 => >>> /lib/x86_64-linux-gnu/libnsdb-4.99.31.so.1 (0x00007ddd751af000) >>> libpq.so.5 => /lib/x86_64-linux-gnu/libpq.so.5 >>> (0x00007ddd75158000) >>> libnsthread-4.99.31.so.1 => >>> /lib/x86_64-linux-gnu/libnsthread-4.99.31.so.1 (0x00007ddd7514c000) >>> libnsd-4.99.31.so.1 => /lib/x86_64-linux-gnu/libnsd-4.99.31.so.1 >>> (0x00007ddd75047000) >>> libtcl8.6.so => /lib/x86_64-linux-gnu/libtcl8.6.so >>> (0x00007ddd74e9a000) >>> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ddd74c00000) >>> libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 >>> (0x00007ddd74b56000) >>> libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 >>> (0x00007ddd74600000) >>> libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 >>> (0x00007ddd74e44000) >>> libldap.so.2 => /lib/x86_64-linux-gnu/libldap.so.2 >>> (0x00007ddd745a3000) >>> libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ddd74e26000) >>> libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 >>> (0x00007ddd74b1c000) >>> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ddd744ba000) >>> /lib64/ld-linux-x86-64.so.2 (0x00007ddd751d5000) >>> libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 >>> (0x00007ddd743f1000) >>> libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 >>> (0x00007ddd743c5000) >>> libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 >>> (0x00007ddd74e1e000) >>> libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 >>> (0x00007ddd743b8000) >>> liblber.so.2 => /lib/x86_64-linux-gnu/liblber.so.2 >>> (0x00007ddd743a8000) >>> libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 >>> (0x00007ddd7438e000) >>> libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 >>> (0x00007ddd74194000) >>> libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 >>> (0x00007ddd74e15000) >>> libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 >>> (0x00007ddd74181000) >>> libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 >>> (0x00007ddd73fdd000) >>> libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 >>> (0x00007ddd73fbb000) >>> libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 >>> (0x00007ddd73e0e000) >>> libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 >>> (0x00007ddd73df8000) >>> libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 >>> (0x00007ddd73da3000) >>> libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 >>> (0x00007ddd73d5b000) >>> libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 >>> (0x00007ddd73cd7000) >>> libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 >>> (0x00007ddd73ccb000) >>> >>> >>> Running nm (list symbols from object files) on the >>> /usr/lib/x86_64-linux-gnu/naviserver/bin/nsdbpg.so doesn't provide any >>> feedback about having the the _Ns_ModuleInit symbol. >>> >>> See here: >>> .. >>> .. >>> .. >>> .. >>> >>> 0000000000004d50 t AddCmds >>> 0000000000004260 t BindRow >>> 00000000000077f0 t blob_dml_file >>> 0000000000007200 t blob_get >>> 00000000000075e0 t blob_put >>> 00000000000072e0 t blob_send_to_stream >>> 00000000000041e0 t CloseDb >>> U close@GLIBC_2.2.5 >>> 000000000000b068 b completed.0 >>> U __ctype_b_loc@GLIBC_2.3 >>> w __cxa_finalize@GLIBC_2.2.5 >>> 000000000000b070 b dateStyle >>> 0000000000006870 t DbFail >>> 0000000000003f50 t DbType >>> 0000000000007c70 t decode3 >>> 0000000000003ce0 t deregister_tm_clones >>> 0000000000003d50 t __do_global_dtors_aux >>> 000000000000a8d8 d __do_global_dtors_aux_fini_array_entry >>> 000000000000b000 d __dso_handle >>> 000000000000aa30 d _DYNAMIC >>> 0000000000007b60 t encode3 >>> 0000000000007b30 t enc_one >>> U __errno_location@GLIBC_2.2.5 >>> 0000000000004370 t Exec >>> 0000000000007d5c t _fini >>> 0000000000004980 t Flush >>> 0000000000003d90 t frame_dummy >>> 000000000000a8d0 d __frame_dummy_init_array_entry >>> 00000000000093a0 r __FRAME_END__ >>> 0000000000006fb0 t get_blob_tuples >>> U getenv@GLIBC_2.2.5 >>> 0000000000007c50 t get_one >>> 0000000000004740 t GetRow >>> 0000000000004940 t GetRowCount >>> 000000000000ac60 d _GLOBAL_OFFSET_TABLE_ >>> w __gmon_start__ >>> 0000000000008b50 r __GNU_EH_FRAME_HDR >>> 000000000000b078 b id >>> 0000000000003000 t _init >>> 000000000000b080 b intTypePtr >>> U __isoc23_strtol@GLIBC_2.38 >>> w _ITM_deregisterTMCloneTable >>> w _ITM_registerTMCloneTable >>> 0000000000007a80 t linkedListElement_new >>> 0000000000007ae0 t LinkedList_free_list >>> 0000000000007ab0 t LinkedList_len >>> 0000000000005370 t ListElementExternal >>> U ns_calloc >>> U Ns_ConfigGetValue >>> U Ns_ConnContentSent >>> U Ns_ConnWriteData >>> U Ns_Db0or1Row >>> U Ns_Db1Row >>> U Ns_DbDML >>> 0000000000003da0 T Ns_DbDriverInit >>> U Ns_DbDriverName >>> U Ns_DbExec >>> U Ns_DbGetMinDuration >>> 00000000000052c4 N nsdbpg.c.6eb8844b >>> U Ns_DbRegisterDriver >>> U Ns_DbSelect >>> U Ns_DbSetException >>> U Ns_DiffTime >>> U Ns_DStringExport >>> U Ns_DStringPrintf >>> U NS_EMPTY_STRING >>> U ns_free >>> U Ns_GetTime >>> U Ns_HttpParseHost2 >>> U Ns_Log >>> U Ns_LogSeverityEnabled >>> U Ns_LogSqlDebug >>> U ns_malloc >>> 0000000000008000 R Ns_ModuleVersion >>> U Ns_ObjvArgs >>> U Ns_ObjvObj >>> U Ns_ObjvSet >>> U Ns_ObjvString >>> U Ns_ParseObjv >>> 0000000000004d00 T Ns_PgServerInit >>> U Ns_SetClearValues >>> U Ns_SetFree >>> U Ns_SetGet >>> U Ns_SetPutSz >>> U Ns_SetPutValueSz >>> U Ns_SubcmdObjv >>> U Ns_TclDbGetHandle >>> U Ns_TclEnterSet >>> U Ns_TclGetConn >>> U Ns_TclPrintfResult >>> U Ns_TclRegisterTrace >>> 0000000000003f60 t OpenDb >>> U open@GLIBC_2.2.5 >>> 0000000000006a30 t parse_bind_variables >>> 0000000000005260 t ParsedSQLDupInternalRep >>> 00000000000051f0 t ParsedSQLFreeInternalRep >>> 000000000000b040 d ParsedSQLObjType >>> 00000000000052d0 t ParsedSQLSetFromAny >>> 00000000000058a0 t PgBindDmlObjCmd >>> 0000000000005fd0 t PgBindExecObjCmd >>> 00000000000061e0 t PgBindObjCmd >>> 0000000000005a50 t PgBindOneRowObjCmd >>> 0000000000005e10 t PgBindSelectObjCmd >>> 0000000000005c20 t PgBindZeroOrOneRowObjCmd >>> 000000000000b020 D pgDbName >>> 0000000000004dc0 t PgObjCmd >>> 0000000000006440 t PgPrepareObjCmd >>> U PQbackendPID >>> U PQclear >>> U PQcmdTuples >>> U PQdb >>> U PQerrorMessage >>> U PQexec >>> U PQfinish >>> U PQfname >>> U PQfreemem >>> U PQftype >>> U PQgetlength >>> U PQgetvalue >>> U PQhost >>> U PQlibVersion >>> U PQnfields >>> U PQntuples >>> U PQoptions >>> U PQport >>> U PQresultErrorMessage >>> U PQresultStatus >>> U PQsetdbLogin >>> U PQstatus >>> U PQunescapeBytea >>> 000000000000a960 d procs >>> U read@GLIBC_2.2.5 >>> 0000000000003d10 t register_tm_clones >>> 00000000000049f0 t ResetHandle >>> 0000000000004a90 t SetTransactionState >>> U __snprintf_chk@GLIBC_2.3.4 >>> U __sprintf_chk@GLIBC_2.3.4 >>> 00000000000053c0 t SqlObjToString >>> U __stack_chk_fail@GLIBC_2.4 >>> U strcasecmp@GLIBC_2.2.5 >>> U __strcat_chk@GLIBC_2.3.4 >>> U strchr@GLIBC_2.2.5 >>> U strcmp@GLIBC_2.2.5 >>> U __strcpy_chk@GLIBC_2.3.4 >>> U strerror@GLIBC_2.2.5 >>> U strlen@GLIBC_2.2.5 >>> U strncasecmp@GLIBC_2.2.5 >>> 000000000000a8e0 d subcmds.0 >>> 00000000000062e1 N tclcmds.c.1cb70ca1 >>> U Tcl_ConvertToType >>> U Tcl_CreateObjCommand >>> U Tcl_DictObjPut >>> U Tcl_DStringAppend >>> U Tcl_DStringFree >>> U Tcl_DStringInit >>> U Tcl_DStringResult >>> U Tcl_DStringSetLength >>> U Tcl_ExternalToUtfDString >>> U Tcl_GetByteArrayFromObj >>> U Tcl_GetIndexFromObjStruct >>> U Tcl_GetObjType >>> U Tcl_GetString >>> U Tcl_GetStringFromObj >>> U Tcl_GetVar2Ex >>> U Tcl_ListObjAppendElement >>> U Tcl_NewByteArrayObj >>> U Tcl_NewDictObj >>> U Tcl_NewIntObj >>> U Tcl_NewListObj >>> U Tcl_NewStringObj >>> U Tcl_Panic >>> U Tcl_SetObjResult >>> U Tcl_UtfToExternalDString >>> U Tcl_WrongNumArgs >>> 000000000000b068 d __TMC_END__ >>> U write@GLIBC_2.2.5 >>> 0000000000007560 t write_to_stream >>> >>> >>> Am I missing something ? or there is an issue with the Code? >>> <image.png> >>> >>> >>> Thanks >>> Regards, >>> >>> Sassy Natan >>> 972-(0)54-2203702 >>> >> >> >> -- >> Regards, >> >> Sassy Natan >> 972-(0)54-2203702 >> > > > -- > Regards, > > Sassy Natan > 972-(0)54-2203702 > _______________________________________________ > naviserver-devel mailing list > naviserver-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > > _______________________________________________ > naviserver-devel mailing list > naviserver-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Regards, Sassy Natan 972-(0)54-2203702
_______________________________________________ naviserver-devel mailing list naviserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/naviserver-devel