You can subscribe to this list here.
2005 |
Jan
|
Feb
(53) |
Mar
(62) |
Apr
(88) |
May
(55) |
Jun
(204) |
Jul
(52) |
Aug
|
Sep
(1) |
Oct
(94) |
Nov
(15) |
Dec
(68) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(130) |
Feb
(105) |
Mar
(34) |
Apr
(61) |
May
(41) |
Jun
(92) |
Jul
(176) |
Aug
(102) |
Sep
(247) |
Oct
(69) |
Nov
(32) |
Dec
(140) |
2007 |
Jan
(58) |
Feb
(51) |
Mar
(11) |
Apr
(20) |
May
(34) |
Jun
(37) |
Jul
(18) |
Aug
(60) |
Sep
(41) |
Oct
(105) |
Nov
(19) |
Dec
(14) |
2008 |
Jan
(3) |
Feb
|
Mar
(7) |
Apr
(5) |
May
(123) |
Jun
(5) |
Jul
(1) |
Aug
(29) |
Sep
(15) |
Oct
(21) |
Nov
(51) |
Dec
(3) |
2009 |
Jan
|
Feb
(36) |
Mar
(29) |
Apr
|
May
|
Jun
(7) |
Jul
(4) |
Aug
|
Sep
(4) |
Oct
|
Nov
(13) |
Dec
|
2010 |
Jan
|
Feb
|
Mar
(9) |
Apr
(11) |
May
(16) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
(92) |
Nov
(28) |
Dec
(16) |
2013 |
Jan
(9) |
Feb
(2) |
Mar
|
Apr
(4) |
May
(4) |
Jun
(6) |
Jul
(14) |
Aug
(12) |
Sep
(4) |
Oct
(13) |
Nov
(1) |
Dec
(6) |
2014 |
Jan
(23) |
Feb
(19) |
Mar
(10) |
Apr
(14) |
May
(11) |
Jun
(6) |
Jul
(11) |
Aug
(15) |
Sep
(41) |
Oct
(95) |
Nov
(23) |
Dec
(11) |
2015 |
Jan
(3) |
Feb
(9) |
Mar
(19) |
Apr
(3) |
May
(1) |
Jun
(3) |
Jul
(11) |
Aug
(1) |
Sep
(15) |
Oct
(5) |
Nov
(2) |
Dec
|
2016 |
Jan
(7) |
Feb
(11) |
Mar
(8) |
Apr
(1) |
May
(3) |
Jun
(17) |
Jul
(12) |
Aug
(3) |
Sep
(5) |
Oct
(19) |
Nov
(12) |
Dec
(6) |
2017 |
Jan
(30) |
Feb
(23) |
Mar
(12) |
Apr
(32) |
May
(27) |
Jun
(7) |
Jul
(13) |
Aug
(16) |
Sep
(6) |
Oct
(11) |
Nov
|
Dec
(12) |
2018 |
Jan
(1) |
Feb
(5) |
Mar
(6) |
Apr
(7) |
May
(23) |
Jun
(3) |
Jul
(2) |
Aug
(1) |
Sep
(6) |
Oct
(6) |
Nov
(10) |
Dec
(3) |
2019 |
Jan
(26) |
Feb
(15) |
Mar
(9) |
Apr
|
May
(8) |
Jun
(14) |
Jul
(10) |
Aug
(10) |
Sep
(4) |
Oct
(2) |
Nov
(20) |
Dec
(10) |
2020 |
Jan
(10) |
Feb
(14) |
Mar
(29) |
Apr
(11) |
May
(25) |
Jun
(21) |
Jul
(23) |
Aug
(12) |
Sep
(19) |
Oct
(6) |
Nov
(8) |
Dec
(12) |
2021 |
Jan
(29) |
Feb
(9) |
Mar
(8) |
Apr
(8) |
May
(2) |
Jun
(2) |
Jul
(9) |
Aug
(9) |
Sep
(3) |
Oct
(4) |
Nov
(12) |
Dec
(13) |
2022 |
Jan
(4) |
Feb
|
Mar
(4) |
Apr
(12) |
May
(15) |
Jun
(7) |
Jul
(10) |
Aug
(2) |
Sep
|
Oct
(1) |
Nov
(8) |
Dec
|
2023 |
Jan
(15) |
Feb
|
Mar
(23) |
Apr
(1) |
May
(2) |
Jun
(10) |
Jul
|
Aug
(22) |
Sep
(19) |
Oct
(2) |
Nov
(20) |
Dec
|
2024 |
Jan
(1) |
Feb
|
Mar
(16) |
Apr
(15) |
May
(6) |
Jun
(4) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(13) |
Nov
(18) |
Dec
(6) |
2025 |
Jan
(12) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(11) |
Jun
(5) |
Jul
(4) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Not S. <un...@cr...> - 2025-01-16 11:24:32
|
Hi Gustaf, It does indeed. All those emails from me can be ignored. Thank You, David F -----Original Message----- From: Gustaf <ne...@wu...> To: naviserver-devel <nav...@li...> Date: Thursday, 16 January 2025 8:48 AM GMT Subject: Re: [naviserver-devel] Appending to an multi-element dictonary Dear David, nsv_dict has mostly the same interface as the Tcl dict. Wasn’t the question answered sufficiently by Harald in https://core.tcl-lang.org/tcl/tktview/47fd91176d ? All the best -g > On 15.01.2025, at 20:27, Not Spam <un...@cr...> wrote: > > Good evening, > > This may be more a coding issue but I'm not sure if this is by design, limited or programmed to, or that if you shouldn't be able to. > However I've started heavily using dictionaries within as a in-house data-store and taken it out of context of the standard dictionary key-value design. > On count, I am currently creating an dictionary of seven elements. > > nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "1" "Value 1" > nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "2" "Value 2" > nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "3" "Value 3" > > nsv_dict get "MyDictonary" "Store" "Set" "Block" "Key" "Field" "2" > Result: Value 2 > > and full store: > nsv_dict get "MyDictonary" "Store" > Set {Block {Key {Field {1 {Value 1} 2 {Value 2} 3 {Value 3}}}}} > > but if I was to append a forth value to this: > nsv_dict append "MyDictonary" "Store" "Set" "Block" "Key" "Field" "4" "Value 4" > > this sets up the next result as: > Set {Block {Key {Field {1 {Value 1} 2 {Value 2} 3 {Value 3}}}}BlockKeyField4Value 4} > > And that then anything afterwards throws the following error: > > [15/Jan/2025:19:12:11][17646.3ae1efc15100][-conn:default:default:1:1-] Error: GET /dictTest.ix, PeerAddress: 10.2.1.77 > : dict element in braces followed by "BlockKeyField4Value" instead of space > > My workaround which is of obtaining the result and than appending the new data to that and then setting the appended string as the new value to the same dictionary but it feels klunky. > I'm not sure how to combat this apart from above. > > Should appending suppose to work? > > P.S: however as just testing after writing this email, It appears to occur in TCL too. > % dict set MyDictonary store set block key field 1 "hello" > store {set {block {key {field {1 hello}}}}} > % dict set MyDictonary store set block key field 2 "hello" > store {set {block {key {field {1 hello 2 hello}}}}} > % dict append MyDictonary store set block key field 3 "hello" > store {set {block {key {field {1 hello 2 hello}}}}setblockkeyfield3hello} > > Many Thanks, > David F > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel _______________________________________________ naviserver-devel mailing list nav...@li... https://lists.sourceforge.net/lists/listinfo/naviserver-devel |
From: Gustaf N. (sslmail) <ne...@wu...> - 2025-01-16 08:48:27
|
Dear David, nsv_dict has mostly the same interface as the Tcl dict. Wasn’t the question answered sufficiently by Harald in https://core.tcl-lang.org/tcl/tktview/47fd91176d ? All the best -g > On 15.01.2025, at 20:27, Not Spam <un...@cr...> wrote: > > Good evening, > > This may be more a coding issue but I'm not sure if this is by design, limited or programmed to, or that if you shouldn't be able to. > However I've started heavily using dictionaries within as a in-house data-store and taken it out of context of the standard dictionary key-value design. > On count, I am currently creating an dictionary of seven elements. > > nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "1" "Value 1" > nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "2" "Value 2" > nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "3" "Value 3" > > nsv_dict get "MyDictonary" "Store" "Set" "Block" "Key" "Field" "2" > Result: Value 2 > > and full store: > nsv_dict get "MyDictonary" "Store" > Set {Block {Key {Field {1 {Value 1} 2 {Value 2} 3 {Value 3}}}}} > > but if I was to append a forth value to this: > nsv_dict append "MyDictonary" "Store" "Set" "Block" "Key" "Field" "4" "Value 4" > > this sets up the next result as: > Set {Block {Key {Field {1 {Value 1} 2 {Value 2} 3 {Value 3}}}}BlockKeyField4Value 4} > > And that then anything afterwards throws the following error: > > [15/Jan/2025:19:12:11][17646.3ae1efc15100][-conn:default:default:1:1-] Error: GET /dictTest.ix, PeerAddress: 10.2.1.77 > : dict element in braces followed by "BlockKeyField4Value" instead of space > > My workaround which is of obtaining the result and than appending the new data to that and then setting the appended string as the new value to the same dictionary but it feels klunky. > I'm not sure how to combat this apart from above. > > Should appending suppose to work? > > P.S: however as just testing after writing this email, It appears to occur in TCL too. > % dict set MyDictonary store set block key field 1 "hello" > store {set {block {key {field {1 hello}}}}} > % dict set MyDictonary store set block key field 2 "hello" > store {set {block {key {field {1 hello 2 hello}}}}} > % dict append MyDictonary store set block key field 3 "hello" > store {set {block {key {field {1 hello 2 hello}}}}setblockkeyfield3hello} > > Many Thanks, > David F > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel |
From: Not S. <un...@cr...> - 2025-01-15 22:09:07
|
Sorry, I mis-explained, what I mean I wish to append to value 4 to index 2 nsv_dict append "MyDictonary" "Store" "Set" "Block" "Key" "Field" "2" "Value 4" Set {Block {Key {Field {1 {Value 1} 2 {Value 2 Value 4} 3 {Value 3}}}}} -----Original Message----- From: Not <un...@cr...> To: naviserver-devel <nav...@li...> Date: Wednesday, 15 January 2025 7:46 PM GMT Subject: [naviserver-devel] Appending to an multi-element dictonary Good evening, This may be more a coding issue but I'm not sure if this is by design, limited or programmed to, or that if you shouldn't be able to. However I've started heavily using dictionaries within as a in-house data-store and taken it out of context of the standard dictionary key-value design. On count, I am currently creating an dictionary of seven elements. nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "1" "Value 1" nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "2" "Value 2" nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "3" "Value 3" nsv_dict get "MyDictonary" "Store" "Set" "Block" "Key" "Field" "2" Result: Value 2 and full store: nsv_dict get "MyDictonary" "Store" Set {Block {Key {Field {1 {Value 1} 2 {Value 2} 3 {Value 3}}}}} but if I was to append a forth value to this: nsv_dict append "MyDictonary" "Store" "Set" "Block" "Key" "Field" "4" "Value 4" this sets up the next result as: Set {Block {Key {Field {1 {Value 1} 2 {Value 2} 3 {Value 3}}}}BlockKeyField4Value 4} And that then anything afterwards throws the following error: [15/Jan/2025:19:12:11][17646.3ae1efc15100][-conn:default:default:1:1-] Error: GET /dictTest.ix, PeerAddress: 10.2.1.77 : dict element in braces followed by "BlockKeyField4Value" instead of space My workaround which is of obtaining the result and than appending the new data to that and then setting the appended string as the new value to the same dictionary but it feels klunky. I'm not sure how to combat this apart from above. Should appending suppose to work? P.S: however as just testing after writing this email, It appears to occur in TCL too. % dict set MyDictonary store set block key field 1 "hello" store {set {block {key {field {1 hello}}}}} % dict set MyDictonary store set block key field 2 "hello" store {set {block {key {field {1 hello 2 hello}}}}} % dict append MyDictonary store set block key field 3 "hello" store {set {block {key {field {1 hello 2 hello}}}}setblockkeyfield3hello} Many Thanks, David F _______________________________________________ naviserver-devel mailing list nav...@li... https://lists.sourceforge.net/lists/listinfo/naviserver-devel |
From: Not S. <un...@cr...> - 2025-01-15 19:46:40
|
Good evening, This may be more a coding issue but I'm not sure if this is by design, limited or programmed to, or that if you shouldn't be able to. However I've started heavily using dictionaries within as a in-house data-store and taken it out of context of the standard dictionary key-value design. On count, I am currently creating an dictionary of seven elements. nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "1" "Value 1" nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "2" "Value 2" nsv_dict set "MyDictonary" "Store" "Set" "Block" "Key" "Field" "3" "Value 3" nsv_dict get "MyDictonary" "Store" "Set" "Block" "Key" "Field" "2" Result: Value 2 and full store: nsv_dict get "MyDictonary" "Store" Set {Block {Key {Field {1 {Value 1} 2 {Value 2} 3 {Value 3}}}}} but if I was to append a forth value to this: nsv_dict append "MyDictonary" "Store" "Set" "Block" "Key" "Field" "4" "Value 4" this sets up the next result as: Set {Block {Key {Field {1 {Value 1} 2 {Value 2} 3 {Value 3}}}}BlockKeyField4Value 4} And that then anything afterwards throws the following error: [15/Jan/2025:19:12:11][17646.3ae1efc15100][-conn:default:default:1:1-] Error: GET /dictTest.ix, PeerAddress: 10.2.1.77 : dict element in braces followed by "BlockKeyField4Value" instead of space My workaround which is of obtaining the result and than appending the new data to that and then setting the appended string as the new value to the same dictionary but it feels klunky. I'm not sure how to combat this apart from above. Should appending suppose to work? P.S: however as just testing after writing this email, It appears to occur in TCL too. % dict set MyDictonary store set block key field 1 "hello" store {set {block {key {field {1 hello}}}}} % dict set MyDictonary store set block key field 2 "hello" store {set {block {key {field {1 hello 2 hello}}}}} % dict append MyDictonary store set block key field 3 "hello" store {set {block {key {field {1 hello 2 hello}}}}setblockkeyfield3hello} Many Thanks, David F |
From: Wolfgang W. <wol...@di...> - 2025-01-07 06:51:49
|
We will still need some testing, but it shouldn't take too long. The code depends on our session handling, but it can be refactored to include more generic procedures and an example using NSV as session storage. The result can be made available on GitHub. Cheers, Wolfgang Am 03.01.25 um 12:49 schrieb Gustaf Neumann (sslmail): > > >> Wow, this was fast. > A good architecture pays off in such cases! >> >> If anyone is interested in Passkeys and WebAuthn: I can provide the >> Javascript/Tcl/Naviserver details. Integration in any kind of >> framework should be quite easy. >> > > Yes, please! I think, this would be very helpful for many. > If this is appropriate, i could create a modules in the naviserver > space on github and provide you with the necessary rights… > > all the best -g > > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel -- |
From: Gustaf N. (sslmail) <ne...@wu...> - 2025-01-03 11:50:14
|
> Wow, this was fast. A good architecture pays off in such cases! > If anyone is interested in Passkeys and WebAuthn: I can provide the Javascript/Tcl/Naviserver details. Integration in any kind of framework should be quite easy. > Yes, please! I think, this would be very helpful for many. If this is appropriate, i could create a modules in the naviserver space on github and provide you with the necessary rights… all the best -g |
From: Wolfgang W. <wol...@di...> - 2025-01-03 11:43:43
|
Wow, this was fast. It was meant as a question but it's really nice to have. If anyone is interested in Passkeys and WebAuthn: I can provide the Javascript/Tcl/Naviserver details. Integration in any kind of framework should be quite easy. Thank you, Wolfgang Winkler Am 03.01.25 um 10:43 schrieb Gustaf Neumann (sslmail): > >>> For this I currently write the .pem file to disk (after conversion from .der to .pem). Is it possible to circumvent this? We store the public key data in the database and it would be nice to use it as string. >> If this is meant as a feature requests, …. > In the updated version of NaviServer, one can now provide PEM content as strings, wherever PEM content is used for reading. Examples are in the regression test. > All the best > .g > > > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel -- *Wolfgang Winkler* Geschäftsführung wol...@di... mobil +43.699.19971172 dc:*büro* digital concepts Novak Winkler OG Software & Design Landstraße 68, 5. Stock, 4020 Linz www.digital-concepts.com <http://www.digital-concepts.com> tel +43.732.997117.72 tel +43.699.1997117.2 Firmenbuchnummer: 192003h Firmenbuchgericht: Landesgericht Linz |
From: Gustaf N. (sslmail) <ne...@wu...> - 2025-01-03 09:44:15
|
>> For this I currently write the .pem file to disk (after conversion from .der to .pem). Is it possible to circumvent this? We store the public key data in the database and it would be nice to use it as string. > > If this is meant as a feature requests, …. In the updated version of NaviServer, one can now provide PEM content as strings, wherever PEM content is used for reading. Examples are in the regression test. All the best .g |
From: Gustaf N. (sslmail) <ne...@wu...> - 2025-01-03 09:09:20
|
> For this I currently write the .pem file to disk (after conversion from .der to .pem). Is it possible to circumvent this? We store the public key data in the database and it would be nice to use it as string. if this is meant as a question, the answer is no, currently NaviServer is using the file-based OpenSSL API. If this is meant as a feature requests, …. i had this as well on my agenda but no urge for it, since writing a PEM to the file is pretty fast and can be done on the Tcl layer as well. -g |
From: Wolfgang W. <wol...@di...> - 2025-01-03 08:50:15
|
Dear all, I am currently writing a client for integrating webauthn into naviserver. It's a bunch of Javascript, a lot of encoding/decoding and some crypthography. The various kinks are ironed out, and I can register users and verify webauthn.get responses. Here's my question: I am using ::ns_crypto::md string -digest sha256 -verify ${req}.pem -signature $signature -binary $data_to_sign to verify the signature of the data I get from the webauthn provider. For this I currently write the .pem file to disk (after conversion from .der to .pem). Is it possible to circumvent this? We store the public key data in the database and it would be nice to use it as string. Thanks for your input, Wolfgang Winkler -- *Wolfgang Winkler* Geschäftsführung wol...@di... mobil +43.699.19971172 dc:*büro* digital concepts Novak Winkler OG Software & Design Landstraße 68, 5. Stock, 4020 Linz www.digital-concepts.com <http://www.digital-concepts.com> tel +43.732.997117.72 tel +43.699.1997117.2 Firmenbuchnummer: 192003h Firmenbuchgericht: Landesgericht Linz |
From: Brian F. <bri...@ai...> - 2024-12-30 13:46:57
|
Hello This is still an issue for us. Would this be a possible feature to add? thanks Brian ________________________________ From: Brian Fenton <bri...@ai...> Sent: Friday 27 October 2023 5:56 pm To: nav...@li... <nav...@li...> Subject: [naviserver-devel] Proposal: config file boolean parameter "showserverheader" to show/hide "Server:" response header Hi all Recently during a client security audit, the "Server: NaviServer/4.99.28" response header was flagged as an issue. The client has asked us to remove the header, if possible. The RFC suggests that the "Server: " header is optional, so I believe this should be OK to remove. https://www.rfc-editor.org/rfc/rfc7231#section-7.4.2 We would like to propose a new config file boolean parameter "showserverheader" with default true. Ns_ConnConstructHeaders in return.c could then check this parameter before outputting the "Server: " header e.g. something like this: if (Ns_ConfigBool(path, "showserverheader", NS_TRUE) == NS_TRUE) { Ns_DStringVarAppend(dsPtr, "Server: ", Ns_InfoServerName(), "/", Ns_InfoServerVersion(), "\r\n"); } Thoughts? Alternatives? thanks Brian _______________________________________________ naviserver-devel mailing list nav...@li... https://lists.sourceforge.net/lists/listinfo/naviserver-devel |
From: Gustaf N. (sslmail) <ne...@wu...> - 2024-12-10 13:56:33
|
I have addressed the work items below, all changes are in the repository. The “keyl*” commands are now deprecated. Furthermore, i added a section to admin-tuning explaining the spooling threads (in essence the driver and writer threads) and worked as well through the other sections, removed some SGI stuff, etc. https://naviserver.sourceforge.io/5.0/manual/files/admin-tuning.html Altogether, we have 90 commands/subcommands deprecated. I am still planning for the release to add an option to build NaviServer without the deprecated commands (default is with deprecated commands). Why should every NaviServer binary carry these around? Esp. for constraint environments, this is not desired. All the best -g > The statistics refer just to the commands starting with “ns” to leave out some of the internals, which are not too many. > We have 6 C implemented commands not starting with the usual NaviServer prefix, and one command which was intentionally not documented: > > - I will document “ns_crash”, If no one objects. > > - the keyl* commands are inherited from TclX. From my point of view, there is little reason to use in new programs, since it resembles in essence the Tcl “dict” functionality with a different syntax. > (correct me, if I'm wrong am wrong). > > I see the following options > * deprecate it > * put it into a separate module > * drop it, since tclx is still maintained by flightaware (https://github.com/flightaware/tclx/), so people can load it via “package require”. > > I am in favor of deprecating it in NaviServer 5, such that users get warned about its usage. > > - _ns_adp_include: In my understanding, the only reason for having a command “ns_adp_include” and a separate command “_ns_adp_include” is the proc call-frame on the top-level to keep local variables. It should be possible to create this call-frame via the public API of Tcl. I will look into this. > > As always, feedback is welcome. > > -g |
From: Gustaf N. (sslmail) <ne...@wu...> - 2024-12-08 16:17:14
|
> > ------------> 48 occurrences of deprecated commands in documentation > > so, cleanup item 6 is > > 6) documentation should not be based on deprecated commands > The mentioned issues are fixed. Here is the summary of the current state of the cleanup: Tested commands ------------> 709 tested commands, 86 deprecated, 639 documented, 0 NOT documented ------------> 0 usage message differ from doc, 639 are identical Documented commands ------------> 639 documented commands, 639 tested, 0 NOT tested Deprecated commands ------------> 0 deprecated commands are documented ------------> 0 occurrences of deprecated commands in documentation ------------> 38 deprecated commands are tested C-implemented commands: C-implemented command is not documented: _ns_adp_include C-implemented command is not documented: exit C-implemented command is not documented: chilled C-implemented command is not documented: keylget C-implemented command is not documented: keylkeys C-implemented command is not documented: keylset C-implemented command is not documented: ns_crash The statistics refer just to the commands starting with “ns” to leave out some of the internals, which are not too many. We have 6 C implemented commands not starting with the usual NaviServer prefix, and one command which was intentionally not documented: - I will document “ns_crash”, If no one objects. - the keyl* commands are inherited from TclX. From my point of view, there is little reason to use in new programs, since it resembles in essence the Tcl “dict” functionality with a different syntax. (correct me, if I'm wrong am wrong). I see the following options * deprecate it * put it into a separate module * drop it, since tclx is still maintained by flightaware (https://github.com/flightaware/tclx/), so people can load it via “package require”. I am in favor of deprecating it in NaviServer 5, such that users get warned about its usage. - _ns_adp_include: In my understanding, the only reason for having a command “ns_adp_include” and a separate command “_ns_adp_include” is the proc call-frame on the top-level to keep local variables. It should be possible to create this call-frame via the public API of Tcl. I will look into this. As always, feedback is welcome. -g |
From: Gustaf N. (sslmail) <ne...@wu...> - 2024-12-08 11:15:09
|
Many thanks for the feedback. There are actually multiple forks around. i’ve tried to summarize the situation about the availability in the new man page and added basic support for NaviServer 5. Based on the implementation, NaviServer sever supported the TclPro Debugger (function missing, the leftovers from AOLserver were broken, etc.). Details for the state and installation is now in the man page: https://naviserver.sourceforge.io/5.0/naviserver/files/ns_adp_debug.html all the best -g > On 07.12.2024, at 22:40, Georg Lehner <jor...@ma...> wrote: > FWIW: At some moment Flighaware issued a bounty on reactivating the TclPro Debugger. I found an email from Steve Bennet from 3rd of July of 2017, when he announces that they made it available on github in the repo flightaware/TclProDebug. That's all I can add. I don't use debuggers a lot and have not used TclProDebug. > > Best Regards, > > Georg > |
From: Georg L. <jor...@ma...> - 2024-12-07 22:06:53
|
Hello Gustaf, Your dedication is impressive, thank you! FWIW: At some moment Flighaware issued a bounty on reactivating the TclPro Debugger. I found an email from Steve Bennet from 3rd of July of 2017, when he announces that they made it available on github in the repo flightaware/TclProDebug. That's all I can add. I don't use debuggers a lot and have not used TclProDebug. Best Regards, Georg On 12/4/24 13:57, Gustaf Neumann (sslmail) wrote: > Dear fellow NaviServer users and developers, > > this is a progress report on the cleanup. Points 1-5 are done, no all > the parameters implemented are also documented in the manual pages, > the last days I fixed the documentation of 330 API calls, where the > implementation and the documentation differed. > >> > 1) all commands tested in the regression test should be documented >> > 2) all documented commands should be tested (at least syntax-tested) >> > 3) all implemented commands should be tested >> > 4) the parameters of the implemented commands should be >> documented and vice versa. >> > 5) deprecated commands should be listed in the deprecated section >> of the command listing in the documentation, but not advertised in >> the documentation > > While going through the man pages, I had to rewrite several of these, > since it was describing what the documentation does, and sometimes, it > was not clear to me, what the commands were exactly about, and how it > can/should be used. Therefore, I added several examples that should > help users. The mostly rewritten man pages include: > > https://naviserver.sourceforge.io/5.0/naviserver/files/ns_adp_register.html > https://naviserver.sourceforge.io/5.0/naviserver/files/ns_set.html > https://naviserver.sourceforge.io/5.0/naviserver/files/ns_upload_stats.html > https://naviserver.sourceforge.io/5.0/naviserver/files/ns_urlspace.html > > > These are links to the new NaviServer 5 man pages. Please check. > In case, you are aware of more unclear documentation, or you would > like to see usage examples in the manual please, please contact me. I > will see what i can do. > > As discussed before, I have marked the former TDB calls mentioned > before as deprecated: > > ns_browsermatch > ns_choosecharset > ns_cookiecharset > ns_formfieldcharset > ns_formvalueput > ns_paren > ns_tagelement > ns_tagelementset > > Based on the no overwhelming feedback concerning > > ns_requestauthorize > ns_checkurl > > > My plan is to mark the latter one as deprecated and update the > documentation of the first one. > > The commands which are deprecated are not advertised as commands in > man pages anymore. However, I realized still some long-time burden: > Some parts of the documentation are still referring to deprecated > commands. > > ------------> 48 occurrences of deprecated commands in documentation > > > so, cleanup item 6 is > > 6) documentation should not be based on deprecated commands > > > After having modified a few hundred man pages, these figures don’t > shock me anymore, … but it will need again some more time. > > One more API call requiring decisions is > > ns_adp_debug > > > The call provides an interface to the TclPro debugger. I don’t have > it, so i can’t test it. Has anyone experiences with this? > > After digging around the state is: > - After Scriptics went down the TclPro suite of tools became the > ActiveState TclDevKit suite of tools > - After ActiveState stopped managing the TDK, all the sources became > open https://github.com/activestate/tdk > - There are a few forks including > https://github.com/puremourning/TclProDebug and > https://github.com/apnadkarni/TclProDebug > > The newer forks show some activity, the fork of Ashok has Tcl9 support > (but Ashok is not using it). > > My current state of mind is that we keep maintaining the interface, we > improve on the documentation and i’ll check, if the interfaces are > still the same. > > All the best > -g > > PS: I got several other mails concerning NaviServer. These are not > ignored, i will come back to you on these. > >> >> At least 1 and 2 are finished by today. This week, i have added over >> 700 tests to the regression test, which was hard work and took all my >> resources. We have now 2608 tests in the NaviServer 5 regression test >> vs. 1893 in the newest 4.99 branch: >> >> % egrep -r --include=*.test '^test ' /usr/local/src/naviserver/ >> |wc -l >> 2608 >> >> % egrep -r --include=*.test '^test ' >> /usr/local/src/naviserver-4.99/ |wc -l >> 1893 >> >> >> The current state is not perfect, but a progress. >> >> Tested commands not documented >> ------------> 706 tested commands, 72 deprecated, 648 >> documented, 0 NOT documented >> >> Documented commands not tested >> ------------> 648 documented commands, 648 tested, 0 NOT tested >> >> Deprecated commands which are documented >> ------------> 0 deprecated commands are documented >> >> >> The next goal is to check the alignment of the argument lists of the >> implementation with the documentation. >> >> On my wishlist is also a non-deprecated mode switchable via >> configuration file, where NaviServer offers only non-deprecated commands. >> >> In the meanwhile, something to think about for you: We have still a >> bunch of commands, which have a questionable future. These commands >> are in a "TBD" state for 19 years. >> >> I think, we should deprecate these commands (see below for the list) >> in the NaviServer 5 release. >> Please speak up, if your applications need these: >> >> ns_browsermatch >> ns_choosecharset >> ns_cookiecharset >> ns_formfieldcharset >> ns_formvalueput >> ns_paren >> ns_tagelement >> ns_tagelementset >> >> All the best >> -g > > > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel |
From: Gustaf N. (sslmail) <ne...@wu...> - 2024-12-04 12:58:03
|
Dear fellow NaviServer users and developers, this is a progress report on the cleanup. Points 1-5 are done, no all the parameters implemented are also documented in the manual pages, the last days I fixed the documentation of 330 API calls, where the implementation and the documentation differed. > > 1) all commands tested in the regression test should be documented > > 2) all documented commands should be tested (at least syntax-tested) > > 3) all implemented commands should be tested > > 4) the parameters of the implemented commands should be documented and vice versa. > > 5) deprecated commands should be listed in the deprecated section of the command listing in the documentation, but not advertised in the documentation While going through the man pages, I had to rewrite several of these, since it was describing what the documentation does, and sometimes, it was not clear to me, what the commands were exactly about, and how it can/should be used. Therefore, I added several examples that should help users. The mostly rewritten man pages include: https://naviserver.sourceforge.io/5.0/naviserver/files/ns_adp_register.html https://naviserver.sourceforge.io/5.0/naviserver/files/ns_set.html https://naviserver.sourceforge.io/5.0/naviserver/files/ns_upload_stats.html https://naviserver.sourceforge.io/5.0/naviserver/files/ns_urlspace.html These are links to the new NaviServer 5 man pages. Please check. In case, you are aware of more unclear documentation, or you would like to see usage examples in the manual please, please contact me. I will see what i can do. As discussed before, I have marked the former TDB calls mentioned before as deprecated: ns_browsermatch ns_choosecharset ns_cookiecharset ns_formfieldcharset ns_formvalueput ns_paren ns_tagelement ns_tagelementset Based on the no overwhelming feedback concerning ns_requestauthorize ns_checkurl My plan is to mark the latter one as deprecated and update the documentation of the first one. The commands which are deprecated are not advertised as commands in man pages anymore. However, I realized still some long-time burden: Some parts of the documentation are still referring to deprecated commands. ------------> 48 occurrences of deprecated commands in documentation so, cleanup item 6 is 6) documentation should not be based on deprecated commands After having modified a few hundred man pages, these figures don’t shock me anymore, … but it will need again some more time. One more API call requiring decisions is ns_adp_debug The call provides an interface to the TclPro debugger. I don’t have it, so i can’t test it. Has anyone experiences with this? After digging around the state is: - After Scriptics went down the TclPro suite of tools became the ActiveState TclDevKit suite of tools - After ActiveState stopped managing the TDK, all the sources became open https://github.com/activestate/tdk - There are a few forks including https://github.com/puremourning/TclProDebug and https://github.com/apnadkarni/TclProDebug The newer forks show some activity, the fork of Ashok has Tcl9 support (but Ashok is not using it). My current state of mind is that we keep maintaining the interface, we improve on the documentation and i’ll check, if the interfaces are still the same. All the best -g PS: I got several other mails concerning NaviServer. These are not ignored, i will come back to you on these. > > At least 1 and 2 are finished by today. This week, i have added over 700 tests to the regression test, which was hard work and took all my resources. We have now 2608 tests in the NaviServer 5 regression test vs. 1893 in the newest 4.99 branch: > > % egrep -r --include=*.test '^test ' /usr/local/src/naviserver/ |wc -l > 2608 > > % egrep -r --include=*.test '^test ' /usr/local/src/naviserver-4.99/ |wc -l > 1893 > > The current state is not perfect, but a progress. > > Tested commands not documented > ------------> 706 tested commands, 72 deprecated, 648 documented, 0 NOT documented > > Documented commands not tested > ------------> 648 documented commands, 648 tested, 0 NOT tested > > Deprecated commands which are documented > ------------> 0 deprecated commands are documented > > The next goal is to check the alignment of the argument lists of the implementation with the documentation. > > On my wishlist is also a non-deprecated mode switchable via configuration file, where NaviServer offers only non-deprecated commands. > > In the meanwhile, something to think about for you: We have still a bunch of commands, which have a questionable future. These commands are in a "TBD" state for 19 years. > > I think, we should deprecate these commands (see below for the list) in the NaviServer 5 release. > Please speak up, if your applications need these: > > ns_browsermatch > ns_choosecharset > ns_cookiecharset > ns_formfieldcharset > ns_formvalueput > ns_paren > ns_tagelement > ns_tagelementset > > All the best > -g |
From: Gustaf N. (sslmail) <ne...@wu...> - 2024-11-29 09:30:42
|
> On 29.11.2024, at 10:09, Sassy Natan <sa...@gm...> wrote: > > Hi Group, > > I'm facing an issue with the way my log file is present with the new version. > In the previous version the log file didn't include TAB or other special characters. What was your previous version? The logfile sanitation is in place since 2019. One can specify the behavior via the global parameter sanitizelogfiles. The value of 0 means that no sanitize should happen. The value 1 means that full sanitizing is in place, which means that non-printable characters are written as hex values. The sanitize value of 2 means that sanitizing happens in a human friendly fashion: newlines are preserved, but sanitizing makes sure that multiline content cannot not confused with different log file entries. After a new-line character a continuation character starts the new line followed by 4 spaces. The reason for printing hex representation for non-printable characters into the log file were security audits, there exist several nasty attacks (but probably not with the tab character). An easy strategy without changing the logic in NaviServer is to remove tabs from the source, or using a postprocessing filter (a sed one-liner). -g |
From: Sassy N. <sa...@gm...> - 2024-11-29 09:09:32
|
Hi Group, I'm facing an issue with the way my log file is present with the new version. In the previous version the log file didn't include TAB or other special characters. See for example the following: [29/Nov/2024:03:19:23][41803.75671fe006c0][-sched:0:3275:3-] Debug: nsdbpg(log): call PQexec with < : delete from sec_sessions : where user_id is null or session_id in ( : select session_id from sec_sessions s : * \x09 * join wt_users_new fr on (s.user_id = fr.employee_id) : join wt_login_manager m using (sid) : where 1732850363 - last_hit > case when status_code=101 then coalesce(min_session_timeout,600) else 14400 end );> [29/Nov/2024:03:19:23][41803.75671fe006c0][-sched:0:3275:3-] Debug(sql): pool log duration 0.023254 secs: ' : delete from sec_sessions : where user_id is null or session_id in ( : select session_id from sec_sessions s : * \x09 * join wt_users_new fr on (s.user_id = fr.employee_id) : join wt_login_manager m using (sid) : where 1732850363 - last_hit > case when status_code=101 then coalesce(min_session_timeout,600) else 14400 end ) : ' Is there any way to remove this? via configuration? The logs are being collected by another system we have, and it breaks the phrasing. Maybe there is some config magic? -- Regards, Sassy Natan 972-(0)54-2203702 |
From: Sassy N. <sa...@gm...> - 2024-11-27 08:32:14
|
Thank you Regards, Sassy Natan 972-(0)54-2203702 On Wed, 27 Nov 2024 at 10:00 Gustaf Neumann (sslmail) <ne...@wu...> wrote: > Progress report from the documentation cleanup; > > > 4) the parameters of the implemented commands should be documented and > vice versa. > > Some first numbers, worse than expected: > > From the currently 464 documented commands, the arguments in the source > code differ in more than 50 % of the cases > ------------> 330 usage messages differ from doc, 316 are identical > > > Some of the changes are minimal (like different argument names), some of > these are not (missing or too many options/arguments/…). > One has to go through this case by case, this will take some time, … > > I started already to work on this. The strategy is that In case of doubt, > implementation has higher weight. > > > When is the plan to release version 5.0? > > The plan is this year or early next year > > -g > > > > > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Gustaf N. (sslmail) <ne...@wu...> - 2024-11-27 08:00:08
|
Progress report from the documentation cleanup; > 4) the parameters of the implemented commands should be documented and vice versa. Some first numbers, worse than expected: From the currently 464 documented commands, the arguments in the source code differ in more than 50 % of the cases ------------> 330 usage messages differ from doc, 316 are identical Some of the changes are minimal (like different argument names), some of these are not (missing or too many options/arguments/…). One has to go through this case by case, this will take some time, … I started already to work on this. The strategy is that In case of doubt, implementation has higher weight. > When is the plan to release version 5.0? The plan is this year or early next year -g |
From: Gustaf N. (sslmail) <ne...@wu...> - 2024-11-26 10:11:55
|
> I see that we are still using ns_formvalueput in some very old, but still used, code. I noticed that OpenACS is still using "ns_formvalueput" in some legacy packages within the OpenACS repository. To help identify and manage outdated functions, I have created a small utility script available on my GitHub: https://github.com/gustafn/ns-modernizer/ How the Script Works: The script recursively scans .tcl files in a directory tree, flags deprecated commands, and optionally replaces some of the simpler ones automatically. Here’s an example of its output: ----- /usr/local/oacs-head/openacs-4/packages/dotlrn-ecommerce/tcl/dotlrn-ecommerce-init.tcl use of deprecated command: 'ns_register_adptag' ... updating ./dotlrn-ecommerce/tcl/dotlrn-ecommerce-init.tcl (1 changes) ----- /usr/local/oacs-head/openacs-4/packages/imsld/www/admin/imsld-export-xo.tcl use of deprecated command: 'ns_tmpnam' ... updating ./imsld/www/admin/imsld-export-xo.tcl (1 changes) The full README on GitHub provides additional details, including how to enable the "change mode" for automatic replacements. Next Steps for Deprecation Based on feedback, I plan to mark some TBD functions as deprecated. However, this does not imply their immediate removal; they will remain available for the foreseeable future. Additionally, I identified two more functions with unclear distinctions that I’ve added to the TBD section: ns_requestauthorize ns_checkurl Both functions are implemented using the same core method (NsTclRequestAuthorizeObjCmd) but have different manual pages [1, 2]. My current understanding is: NaviServer allows authentication procs to be registered at the C level, used primarily by the nsperm module. These two noted Tcl functions allow manual invocation of this functionality, which can be useful for testing or specific scenarios. However, having two separate functions seems unnecessary. Proposal I suggest keeping "ns_requestauthorize" because its name better reflects its purpose and marking "ns_checkurl" as deprecated. However, I propose preserving the more concise documentation from "ns_checkurl" for clarity with the other name. Since OpenACS uses its own database-driven permission and authority management system and does not rely on "nsperm", I lack direct experience with these commands. I welcome your insights, especially from anyone more familiar with nsperm or related functionality. all the best -g [1] https://naviserver.sourceforge.io/n/naviserver/files/ns_requestauthorize.html [2] https://naviserver.sourceforge.io/n/naviserver/files/ns_checkurl.html |
From: Sassy N. <sa...@gm...> - 2024-11-25 17:21:53
|
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) <ne...@wu...> 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 <sa...@gm...> 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 <ne...@wu...>, 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 <sa...@gm...> 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 <sa...@gm...> 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 > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Regards, Sassy Natan 972-(0)54-2203702 |
From: Gustaf N. (sslmail) <ne...@wu...> - 2024-11-25 11:06:06
|
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 <sa...@gm...> 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 <ne...@wu... <mailto:ne...@wu...>>, 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 <sa...@gm... <mailto:sa...@gm...>> 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 <sa...@gm... <mailto:sa...@gm...>> 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 <http://libtcl8.6.so/> => /lib/x86_64-linux-gnu/libtcl8.6.so <http://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 > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel |
From: Sassy N. <sa...@gm...> - 2024-11-25 10:20:12
|
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 <ne...@wu...>, 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 <sa...@gm...> 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 <sa...@gm...> 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: image.png] >> >> >> Thanks >> Regards, >> >> Sassy Natan >> 972-(0)54-2203702 >> > > > -- > Regards, > > Sassy Natan > 972-(0)54-2203702 > -- Regards, Sassy Natan 972-(0)54-2203702 |
From: Sassy N. <sa...@gm...> - 2024-11-25 09:33:40
|
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 <sa...@gm...> 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: image.png] > > > Thanks > Regards, > > Sassy Natan > 972-(0)54-2203702 > -- Regards, Sassy Natan 972-(0)54-2203702 |