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
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Gustaf N. <ne...@wu...> - 2016-02-25 11:33:06
|
Hi Maurizio, thanks for the fixes. as such, they could not work, but they point out things, where one has to watch out. I have fixed these things in a way it could work under windows. By looking at the differences, it seems as if you compiled just a IPv4 version (no IPv6 enabled). i would have expected this to go more smoothly. In case you tried the sample nsd-config.tcl script, that could not work with IPv4, since IPv6 addresses were hard-coded. all the best -g Am 24.02.16 um 18:00 schrieb Maurizio Martignano: > Dear Gustaf, > Thank you as always for all your work. > > About Windows I cannot really talk about MinGW nor Cygwin. I'm just using > Visual Studio 2015 with 64 bit as target. > With this configuration I tried to modify the file sockaddr.c (to make it > compile), but I'm not sure about the changes I made. > I also had to modify the file nswin32.c as I could not find anywhere the > function "NsSockGetPort". > Well the resulting system compiles... but nothing works. > I need much more time to do a proper testing/tuning and I can't do that at > the moment. > As soon as I discover more, I'll let you know. > > Back to your delivery of the 16th of February. > > Once again thank you, > Maurizio > > > -----Original Message----- > From: Gustaf Neumann [mailto:ne...@wu...] > Sent: 24 February 2016 14:01 > To: Navidevel <nav...@li...> > Subject: [naviserver-devel] IPv6 for NaviServer > > Dear all, > > over the last week, i've worked on IPv6 support for NaviServer. > For this task, i took the following path: > 1) build a version of NaviServer for IPv6 > 2) build a single code source for compiling either for IPv4 or IPv6 > 3) let the IPv6 version run the setup-files for IPv4 in the IPv6 version > 4) Run regression test suite under IPv4 and/IPv6 > 5) Allow mixed mode (handle IPv4 and IPv6 by the same binary) > (requires some interface changes to handle generic sockaddrs) > > Everything seems to work fine, one can work with the same config files as > before, and everything works as expected, but one can as well listen on IPv6 > addresses (e.g. > the IPv6 unspecified address "::"). IPv4->6 mapping is activated, or the > kernel allows to deliver as well > IPv4 traffic to the IPv6 interface, then one can talk also multiple > protocols. The mileage may vary depending on the OS and kernel. > > It is as well possible to deactivate IPv6 support at compile time via > --disable-ipv6. > > Here is a summary of the necessary changes: > - Added a amall Abstraction API for IP-version agnostic calls: > Ns_LogSockaddr(), Ns_SockaddrGetPort(), > Ns_SockaddrGetSockLen(), Ns_SockaddrMask(), Ns_SockaddrMaskBits(), > Ns_SockaddrSetPort(), ns_inet_ntop(), ns_inet_pton() > > - Replaced in interface more places where "sockaddr_in" (the IPv4 > version of the sockaddr) with the generic (version agnostic) > sockaddr (also in IPv4 code to obtain API consistency when no IPv6 > is available): Ns_BindSock(), Ns_ConnSetPeer(), Ns_GetSockAddr(), > Ns_SockBind(), Ns_SockBindUdp() > > - The Ns_Sock structure contained sockaddr_in, which is not sufficient > to store IPv6 addresses. Therefore it was necessary to change > that to "sockaddr_storage" which guarantees to be large enough > to keep all kind of addresses. This affects as well driver modules > which communicate via the NaviServer managed sockets. Old drivers > might crash with the new structure. Therefore, I've bumped > NS_DRIVER_VERSION to 3 such that driver modules (also binaries) > can communicate that they support IPv6. In IPv6 mode, NaviServer > refuses to work with versions <3. > > - Replaced all usages of ns_inet_ntoa() by ns_intet_ntop() > (except for legacy an minimal library support) > > - Added log file warnings on various places, where NaviServer > was ignoring error states in socket communications silently. > > - Transformed hash table for open listen ports to string keys > (the old code used 32bit IPv4-addresses as keys in hash tables) > - added test for ns_listencallback > > - Ns_HttpParseHost: new abstraction for parsing host and port number. > Reason: IPv6 literal notation contains many colons, parsing > IP-literal notation according to RFC 3986 section 3.2.2 is necessary > (removed places where code was searching for ':' to expect the port) > > - Added [ns_info ipv6] to obtain information whether the binary > supports IPv6 or not > > - Added configure flag --disable-ipv6 to build NaviServer just with > IPv4 support. > > - provide defines for core differences between IPv4 and IPv6 #ifdef > HAVE_IPV6 > # define NS_IP_LOOPBACK "::1" > # define NS_IP_UNSPECIFIED "::" > # define NS_SOCKADDR_IN sockaddr_storage > # define NS_IPADDR_SIZE INET6_ADDRSTRLEN > #else > # define NS_IP_LOOPBACK "127.0.0.1" > # define NS_IP_UNSPECIFIED "0.0.0.0" > # define NS_SOCKADDR_IN sockaddr_in > # define NS_IPADDR_SIZE INET_ADDRSTRLEN > #endif > > - nsperm: > * Aligned implementation with the documentation > (hosts.allow/deny have comma-separated entries) > * Added submask specification in the form /xxx > (e.g. ::1/64) > * Use binary IPv4 and IPv6 values for hash and mask lookup > * Generalizing masking functions > * Refactor code to avoid memory leaks > * Updated documentation > > - modules: > * nsudp and nsssl are now IPv6 aware/compliant > > TODOs: > - more platform testing > (probably changes for Windows necessary, help is appreciated) > - remove commented out debug statements > > - make more modules IPv6 compliant > - documentation updates > > I've tested the generic and IPv4 only version via regression test and random > browsing on Mac OS X and Linux. If you have other platforms, testing would > be appreciated. There are some adjustments for windows probably necessary > (in the absence of "configure", one has to add manually "HAVE_IPV4" to the > compile flags). Any help is welcome. > > best regards > -gustaf neumann > > > ---------------------------------------------------------------------------- > -- > Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + > Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor > end-to-end web transactions and take corrective actions now Troubleshoot > faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 > > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel -- Univ.Prof. Dr. Gustaf Neumann WU Vienna Institute of Information Systems and New Media Welthandelsplatz 1, A-1020 Vienna, Austria |
From: Maurizio M. <Mau...@sp...> - 2016-02-24 17:27:46
|
Dear Gustaf, Thank you as always for all your work. About Windows I cannot really talk about MinGW nor Cygwin. I'm just using Visual Studio 2015 with 64 bit as target. With this configuration I tried to modify the file sockaddr.c (to make it compile), but I'm not sure about the changes I made. I also had to modify the file nswin32.c as I could not find anywhere the function "NsSockGetPort". Well the resulting system compiles... but nothing works. I need much more time to do a proper testing/tuning and I can't do that at the moment. As soon as I discover more, I'll let you know. Back to your delivery of the 16th of February. Once again thank you, Maurizio -----Original Message----- From: Gustaf Neumann [mailto:ne...@wu...] Sent: 24 February 2016 14:01 To: Navidevel <nav...@li...> Subject: [naviserver-devel] IPv6 for NaviServer Dear all, over the last week, i've worked on IPv6 support for NaviServer. For this task, i took the following path: 1) build a version of NaviServer for IPv6 2) build a single code source for compiling either for IPv4 or IPv6 3) let the IPv6 version run the setup-files for IPv4 in the IPv6 version 4) Run regression test suite under IPv4 and/IPv6 5) Allow mixed mode (handle IPv4 and IPv6 by the same binary) (requires some interface changes to handle generic sockaddrs) Everything seems to work fine, one can work with the same config files as before, and everything works as expected, but one can as well listen on IPv6 addresses (e.g. the IPv6 unspecified address "::"). IPv4->6 mapping is activated, or the kernel allows to deliver as well IPv4 traffic to the IPv6 interface, then one can talk also multiple protocols. The mileage may vary depending on the OS and kernel. It is as well possible to deactivate IPv6 support at compile time via --disable-ipv6. Here is a summary of the necessary changes: - Added a amall Abstraction API for IP-version agnostic calls: Ns_LogSockaddr(), Ns_SockaddrGetPort(), Ns_SockaddrGetSockLen(), Ns_SockaddrMask(), Ns_SockaddrMaskBits(), Ns_SockaddrSetPort(), ns_inet_ntop(), ns_inet_pton() - Replaced in interface more places where "sockaddr_in" (the IPv4 version of the sockaddr) with the generic (version agnostic) sockaddr (also in IPv4 code to obtain API consistency when no IPv6 is available): Ns_BindSock(), Ns_ConnSetPeer(), Ns_GetSockAddr(), Ns_SockBind(), Ns_SockBindUdp() - The Ns_Sock structure contained sockaddr_in, which is not sufficient to store IPv6 addresses. Therefore it was necessary to change that to "sockaddr_storage" which guarantees to be large enough to keep all kind of addresses. This affects as well driver modules which communicate via the NaviServer managed sockets. Old drivers might crash with the new structure. Therefore, I've bumped NS_DRIVER_VERSION to 3 such that driver modules (also binaries) can communicate that they support IPv6. In IPv6 mode, NaviServer refuses to work with versions <3. - Replaced all usages of ns_inet_ntoa() by ns_intet_ntop() (except for legacy an minimal library support) - Added log file warnings on various places, where NaviServer was ignoring error states in socket communications silently. - Transformed hash table for open listen ports to string keys (the old code used 32bit IPv4-addresses as keys in hash tables) - added test for ns_listencallback - Ns_HttpParseHost: new abstraction for parsing host and port number. Reason: IPv6 literal notation contains many colons, parsing IP-literal notation according to RFC 3986 section 3.2.2 is necessary (removed places where code was searching for ':' to expect the port) - Added [ns_info ipv6] to obtain information whether the binary supports IPv6 or not - Added configure flag --disable-ipv6 to build NaviServer just with IPv4 support. - provide defines for core differences between IPv4 and IPv6 #ifdef HAVE_IPV6 # define NS_IP_LOOPBACK "::1" # define NS_IP_UNSPECIFIED "::" # define NS_SOCKADDR_IN sockaddr_storage # define NS_IPADDR_SIZE INET6_ADDRSTRLEN #else # define NS_IP_LOOPBACK "127.0.0.1" # define NS_IP_UNSPECIFIED "0.0.0.0" # define NS_SOCKADDR_IN sockaddr_in # define NS_IPADDR_SIZE INET_ADDRSTRLEN #endif - nsperm: * Aligned implementation with the documentation (hosts.allow/deny have comma-separated entries) * Added submask specification in the form /xxx (e.g. ::1/64) * Use binary IPv4 and IPv6 values for hash and mask lookup * Generalizing masking functions * Refactor code to avoid memory leaks * Updated documentation - modules: * nsudp and nsssl are now IPv6 aware/compliant TODOs: - more platform testing (probably changes for Windows necessary, help is appreciated) - remove commented out debug statements - make more modules IPv6 compliant - documentation updates I've tested the generic and IPv4 only version via regression test and random browsing on Mac OS X and Linux. If you have other platforms, testing would be appreciated. There are some adjustments for windows probably necessary (in the absence of "configure", one has to add manually "HAVE_IPV4" to the compile flags). Any help is welcome. best regards -gustaf neumann ---------------------------------------------------------------------------- -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ naviserver-devel mailing list nav...@li... https://lists.sourceforge.net/lists/listinfo/naviserver-devel |
From: Gustaf N. <ne...@wu...> - 2016-02-24 13:00:58
|
Dear all, over the last week, i've worked on IPv6 support for NaviServer. For this task, i took the following path: 1) build a version of NaviServer for IPv6 2) build a single code source for compiling either for IPv4 or IPv6 3) let the IPv6 version run the setup-files for IPv4 in the IPv6 version 4) Run regression test suite under IPv4 and/IPv6 5) Allow mixed mode (handle IPv4 and IPv6 by the same binary) (requires some interface changes to handle generic sockaddrs) Everything seems to work fine, one can work with the same config files as before, and everything works as expected, but one can as well listen on IPv6 addresses (e.g. the IPv6 unspecified address "::"). IPv4->6 mapping is activated, or the kernel allows to deliver as well IPv4 traffic to the IPv6 interface, then one can talk also multiple protocols. The mileage may vary depending on the OS and kernel. It is as well possible to deactivate IPv6 support at compile time via --disable-ipv6. Here is a summary of the necessary changes: - Added a amall Abstraction API for IP-version agnostic calls: Ns_LogSockaddr(), Ns_SockaddrGetPort(), Ns_SockaddrGetSockLen(), Ns_SockaddrMask(), Ns_SockaddrMaskBits(), Ns_SockaddrSetPort(), ns_inet_ntop(), ns_inet_pton() - Replaced in interface more places where "sockaddr_in" (the IPv4 version of the sockaddr) with the generic (version agnostic) sockaddr (also in IPv4 code to obtain API consistency when no IPv6 is available): Ns_BindSock(), Ns_ConnSetPeer(), Ns_GetSockAddr(), Ns_SockBind(), Ns_SockBindUdp() - The Ns_Sock structure contained sockaddr_in, which is not sufficient to store IPv6 addresses. Therefore it was necessary to change that to "sockaddr_storage" which guarantees to be large enough to keep all kind of addresses. This affects as well driver modules which communicate via the NaviServer managed sockets. Old drivers might crash with the new structure. Therefore, I've bumped NS_DRIVER_VERSION to 3 such that driver modules (also binaries) can communicate that they support IPv6. In IPv6 mode, NaviServer refuses to work with versions <3. - Replaced all usages of ns_inet_ntoa() by ns_intet_ntop() (except for legacy an minimal library support) - Added log file warnings on various places, where NaviServer was ignoring error states in socket communications silently. - Transformed hash table for open listen ports to string keys (the old code used 32bit IPv4-addresses as keys in hash tables) - added test for ns_listencallback - Ns_HttpParseHost: new abstraction for parsing host and port number. Reason: IPv6 literal notation contains many colons, parsing IP-literal notation according to RFC 3986 section 3.2.2 is necessary (removed places where code was searching for ':' to expect the port) - Added [ns_info ipv6] to obtain information whether the binary supports IPv6 or not - Added configure flag --disable-ipv6 to build NaviServer just with IPv4 support. - provide defines for core differences between IPv4 and IPv6 #ifdef HAVE_IPV6 # define NS_IP_LOOPBACK "::1" # define NS_IP_UNSPECIFIED "::" # define NS_SOCKADDR_IN sockaddr_storage # define NS_IPADDR_SIZE INET6_ADDRSTRLEN #else # define NS_IP_LOOPBACK "127.0.0.1" # define NS_IP_UNSPECIFIED "0.0.0.0" # define NS_SOCKADDR_IN sockaddr_in # define NS_IPADDR_SIZE INET_ADDRSTRLEN #endif - nsperm: * Aligned implementation with the documentation (hosts.allow/deny have comma-separated entries) * Added submask specification in the form /xxx (e.g. ::1/64) * Use binary IPv4 and IPv6 values for hash and mask lookup * Generalizing masking functions * Refactor code to avoid memory leaks * Updated documentation - modules: * nsudp and nsssl are now IPv6 aware/compliant TODOs: - more platform testing (probably changes for Windows necessary, help is appreciated) - remove commented out debug statements - make more modules IPv6 compliant - documentation updates I've tested the generic and IPv4 only version via regression test and random browsing on Mac OS X and Linux. If you have other platforms, testing would be appreciated. There are some adjustments for windows probably necessary (in the absence of "configure", one has to add manually "HAVE_IPV4" to the compile flags). Any help is welcome. best regards -gustaf neumann |
From: Gustaf N. <ne...@wu...> - 2016-02-16 16:12:38
|
Dear friends, NaviServer 4.99.10 is available. The new version is tagged with naviserver-4.99.10 in mercurial and is as well available at source-forge (naviserver, modules, documentation pages). This version is just a bug-fix release. There is no need to make a big trara about this new version, but it is worthwhile to get the issues fixed soon. all the best -gustaf neumann ======================================= NaviServer 4.99.10, released 2016-02-16 ======================================= Changes relative to 4.99.9 32 files changed, 404 insertions(+), 123 deletions(-) Bug Fixes: - fix potential race condition for configure value "connsperthread" - fix conflicting prototypes in nsdbpg (on some compilers) Documentation improvements: * add list of deprecated tcl-commands to documentation * fix spelling errors Code Changes: * added log entries, when deprecated tcl-commands are called * remove obsolete .cvsignore files from repo * use SCNd64 instead of PRId64 for scanning numbers * further cleanup of the compatibility layer of the PRI*PTR macros * add parallel checks and inconclusive results to cppcheck options * use native bool definition when available * add target to makefile for testing under lldb * further code cleanup Important changes in modules: * nsdbpg: fix conflicting prototype * nsssl: don't crash when fetching obtaining DH parameters from pem file fails |
From: Cesáreo G. R. <ce...@ce...> - 2016-01-18 14:46:39
|
Dear Gustaf, Nice! I've installed it (I had some issues connecting DB but I think is a problem of my setup). And, in case it would be useful, this is a complete warnings list in my setup[1] Sorry if this is not the right medium to send this. Thanks so much for your support Cesáreo ---------- [1] List of warnings in >> uname -v Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; root:xnu-3248.20.55~2/RELEASE_X86_64 ----- tclExecute.c, same error in several lines /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclExecute.c /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclExecute.c:725:22: warning: array index -1 is before the beginning of the array [-Warray-bounds] esPtr->tosPtr = &esPtr->stackWords[-1]; ^ ~~ /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclInt.h:1299:5: note: array 'stackWords' declared here Tcl_Obj *stackWords[1]; ^ /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclExecute.c:937:31: warning: array index -1 is before the beginning of the array [-Warray-bounds] currElems = esPtr->endPtr - &esPtr->stackWords[-1]; ^ ~~ /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclInt.h:1299:5: note: array 'stackWords' declared here Tcl_Obj *stackWords[1]; ^ /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclExecute.c:938:45: warning: array index -1 is before the beginning of the array [-Warray-bounds] if (esPtr->markerPtr || (esPtr->tosPtr != &esPtr->stackWords[-1])) { ^ ~~ /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclInt.h:1299:5: note: array 'stackWords' declared here Tcl_Obj *stackWords[1]; ^ /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclExecute.c:950:31: warning: array index -1 is before the beginning of the array [-Warray-bounds] currElems = esPtr->endPtr - &esPtr->stackWords[-1]; ^ ~~ /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclInt.h:1299:5: note: array 'stackWords' declared here Tcl_Obj *stackWords[1]; ^ /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclExecute.c:1092:22: warning: array index -1 is before the beginning of the array [-Warray-bounds] esPtr->tosPtr = &esPtr->stackWords[-1]; ^ ~~ /usr/local/src/naviserver/tcl8.5.18/unix/../generic/tclInt.h:1299:5: note: array 'stackWords' declared here Tcl_Obj *stackWords[1]; ^ 5 warnings generated. ----- ---------- /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclUnixInit.c:836:9: warning: comparison of function 'CFLocaleCopyCurrent' not equal to a null pointer is always true [-Wtautological-pointer-compare] if (CFLocaleCopyCurrent != NULL && CFLocaleGetIdentifier != NULL && ^~~~~~~~~~~~~~~~~~~ ~~~~ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclUnixInit.c:836:9: note: prefix with the address-of operator to silence this warning if (CFLocaleCopyCurrent != NULL && CFLocaleGetIdentifier != NULL && ^ & /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclUnixInit.c:836:9: note: suffix with parentheses to turn this into a function call if (CFLocaleCopyCurrent != NULL && CFLocaleGetIdentifier != NULL && ^ () /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclUnixInit.c:836:40: warning: comparison of function 'CFLocaleGetIdentifier' not equal to a null pointer is always true [-Wtautological-pointer-compare] if (CFLocaleCopyCurrent != NULL && CFLocaleGetIdentifier != NULL && ^~~~~~~~~~~~~~~~~~~~~ ~~~~ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclUnixInit.c:836:40: note: prefix with the address-of operator to silence this warning if (CFLocaleCopyCurrent != NULL && CFLocaleGetIdentifier != NULL && ^ & 2 warnings generated. -------- -------- /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclLoadDyld.c:386:17: warning: 'NSLookupSymbolInImage' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] nsSymbol = NSLookupSymbolInImage(dyldLoadHandle->dyldLibHeader, ^ /usr/include/mach-o/dyld.h:175:17: note: 'NSLookupSymbolInImage' has been explicitly marked deprecated here extern NSSymbol NSLookupSymbolInImage(const struct mach_header* image, const char* symbolName, uint32_t options) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); ^ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclLoadDyld.c:419:3: warning: 'NSLinkEditError' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] NSLinkEditError(&editError, &errorNumber, &errorName, &errMsg); ^ /usr/include/mach-o/dyld.h:210:13: note: 'NSLinkEditError' has been explicitly marked deprecated here extern void NSLinkEditError(NSLinkEditErrors *c, int *errorNumber, const char** fileName, const char** errorString) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); ^ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclLoadDyld.c:423:17: warning: 'NSLookupSymbolInModule' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] nsSymbol = NSLookupSymbolInModule( ^ /usr/include/mach-o/dyld.h:174:17: note: 'NSLookupSymbolInModule' has been explicitly marked deprecated here extern NSSymbol NSLookupSymbolInModule(NSModule module, const char* symbolName) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); ^ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclLoadDyld.c:432:13: warning: 'NSAddressOfSymbol' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] proc = NSAddressOfSymbol(nsSymbol); ^ /usr/include/mach-o/dyld.h:181:21: note: 'NSAddressOfSymbol' has been explicitly marked deprecated here extern void * NSAddressOfSymbol(NSSymbol symbol) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); ^ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclLoadDyld.c:497:15: warning: 'NSUnLinkModule' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] result = NSUnLinkModule(modulePtr->module, ^ /usr/include/mach-o/dyld.h:162:13: note: 'NSUnLinkModule' has been explicitly marked deprecated here extern bool NSUnLinkModule(NSModule module, uint32_t options) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); ^ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclLoadDyld.c:701:12: warning: 'NSCreateObjectFileImageFromMemory' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] err = NSCreateObjectFileImageFromMemory(buffer, codeSize, ^ /usr/include/mach-o/dyld.h:139:36: note: 'NSCreateObjectFileImageFromMemory' has been explicitly marked deprecated here extern NSObjectFileImageReturnCode NSCreateObjectFileImageFromMemory(const void *address, size_t size, NSObjectFileImage *objectFileImage) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); ^ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclLoadDyld.c:734:14: warning: 'NSLinkModule' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] module = NSLinkModule(dyldObjFileImage, "[Memory Based Bundle]", ^ /usr/include/mach-o/dyld.h:154:17: note: 'NSLinkModule' has been explicitly marked deprecated here extern NSModule NSLinkModule(NSObjectFileImage objectFileImage, const char* moduleName, uint32_t options) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); ^ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclLoadDyld.c:736:5: warning: 'NSDestroyObjectFileImage' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] NSDestroyObjectFileImage(dyldObjFileImage); ^ /usr/include/mach-o/dyld.h:140:36: note: 'NSDestroyObjectFileImage' has been explicitly marked deprecated here extern bool NSDestroyObjectFileImage(NSObjectFileImage objectFileImage) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); ^ /usr/local/src/naviserver/tcl8.5.18/unix/../unix/tclLoadDyld.c:744:2: warning: 'NSLinkEditError' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] NSLinkEditError(&editError, &errorNumber, &errorName, &errMsg); ^ /usr/include/mach-o/dyld.h:210:13: note: 'NSLinkEditError' has been explicitly marked deprecated here extern void NSLinkEditError(NSLinkEditErrors *c, int *errorNumber, const char** fileName, const char** errorString) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); ^ 9 warnings generated. ----------- ----------- In file included from ./generic/nsf.c:988: /usr/local/src/naviserver/nsf2.0.0/generic/nsfStack.c:293:10: warning: nonnull parameter 'framePtr' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] for (; framePtr; framePtr = Tcl_CallFrame_callerPtr(framePtr)) { ~~~ ^~~~~~~~ /usr/local/src/naviserver/nsf2.0.0/generic/nsfStack.c:330:10: warning: nonnull parameter 'framePtr' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] for (; framePtr; framePtr = Tcl_CallFrame_callerPtr(framePtr)) { ~~~ ^~~~~~~~ ./generic/nsf.c:1135:7: warning: nonnull parameter 'clientData' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] if (clientData && NsfObjectIsClass((NsfObject *)clientData)) { ^~~~~~~~~~ ~~ ./generic/nsf.c:1637:11: warning: nonnull parameter 'objectPtr' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] if (objectPtr) *objectPtr = object; ~~ ^~~~~~~~~ ./generic/nsf.c:1662:9: warning: nonnull parameter 'objectPtr' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] if (objectPtr) {*objectPtr = object;} ~~ ^~~~~~~~~ ./generic/nsf.c:2981:10: warning: nonnull parameter 'clPtr' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] for (; clPtr; clPtr = clPtr->nextPtr) { ~~~ ^~~~~ ./generic/nsf.c:3604:10: warning: nonnull parameter 'pl' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] for (; pl; pl = pl->nextPtr) { ~~~ ^~ ./generic/nsf.c:3625:10: warning: nonnull parameter 'pl' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] for (; pl; pl = pl->nextPtr) { ~~~ ^~ ./generic/nsf.c:6901:10: warning: nonnull parameter 'l' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] for (; l; l = l->nextPtr) { ~~~ ^ ./generic/nsf.c:6971:10: warning: nonnull parameter 'list' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] while (list) { ~~~~~ ^~~~ ./generic/nsf.c:7885:11: warning: nonnull parameter 'cmdl' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] for ( ; cmdl; cmdl = cmdl->nextPtr) { ~~~ ^~~~ ./generic/nsf.c:8500:11: warning: nonnull parameter 'cmdlist' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] for ( ; cmdlist; cmdlist = cmdlist->nextPtr) { ~~~ ^~~~~~~ ./generic/nsf.c:19977:42: warning: absolute value function 'abs' given an argument of type 'long' but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value] if (ForwardArgString == remainder || abs(pos) > totalargs) { ^ ./generic/nsf.c:19977:42: note: use function 'labs' instead if (ForwardArgString == remainder || abs(pos) > totalargs) { ^~~ labs ./generic/nsf.c:28186:7: warning: nonnull parameter 'object' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] if (object && (object->filterStack || object->mixinStack)) { ^~~~~~ ~~ ./generic/nsf.c:29671:10: warning: nonnull parameter 'subClasses' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] for (; subClasses; subClasses = subClasses->nextPtr) { ~~~ ^~~~~~~~~~ 15 warnings generated. ---------- ---------- ./generic/nsfUtil.c:120:7: warning: nonnull parameter 'len' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion] if (len) *len = nr_written; ~~ ^~~ 1 warning generated. ---------- ---------- ../expat/xmlparse.c:1568:18: warning: implicit conversion from enumeration type 'enum XML_Status' to different enumeration type 'enum XML_Error' [-Wenum-conversion] result = XML_STATUS_SUSPENDED; ~ ^~~~~~~~~~~~~~~~~~~~ ../expat/expat.h:51:30: note: expanded from macro 'XML_STATUS_SUSPENDED' #define XML_STATUS_SUSPENDED XML_STATUS_SUSPENDED ^~~~~~~~~~~~~~~~~~~~ ../expat/xmlparse.c:1578:18: warning: implicit conversion from enumeration type 'enum XML_Status' to different enumeration type 'enum XML_Error' [-Wenum-conversion] result = XML_STATUS_OK; ~ ^~~~~~~~~~~~~ ../expat/expat.h:49:23: note: expanded from macro 'XML_STATUS_OK' #define XML_STATUS_OK XML_STATUS_OK ^~~~~~~~~~~~~ ../expat/xmlparse.c:1608:12: warning: implicit conversion from enumeration type 'enum XML_Error' to different enumeration type 'enum XML_Status' [-Wenum-conversion] return result; ~~~~~~ ^~~~~~ 3 warnings generated. ------------ ------------ ../generic/domxslt.c:1900:29: warning: equality comparison with extraneous parentheses [-Wparentheses-equality] if ((node->nodeType == ATTRIBUTE_NODE)) { ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../generic/domxslt.c:1900:29: note: remove extraneous parentheses around the comparison to silence this warning if ((node->nodeType == ATTRIBUTE_NODE)) { ~ ^ ~ ../generic/domxslt.c:1900:29: note: use '=' to turn this equality comparison into an assignment if ((node->nodeType == ATTRIBUTE_NODE)) { ^~ = ../generic/domxslt.c:7033:14: warning: address of 'xs->topLevelVars' will always evaluate to 'true' [-Wpointer-bool-conversion] if (&xs->topLevelVars) { ~~ ~~~~^~~~~~~~~~~~ 2 warnings generated. ----------- ----------- ../generic/tcldom.c:594:21: warning: assigning to 'Tcl_ObjType *' (aka 'struct Tcl_ObjType *') from 'const Tcl_ObjType *' (aka 'const struct Tcl_ObjType *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] objPtr->typePtr = &tdomNodeType; ^ ~~~~~~~~~~~~~ ../generic/tcldom.c:661:28: warning: assigning to 'Tcl_ObjType *' (aka 'struct Tcl_ObjType *') from 'const Tcl_ObjType *' (aka 'const struct Tcl_ObjType *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] resultObj->typePtr = &tdomNodeType; ^ ~~~~~~~~~~~~~ ../generic/tcldom.c:696:24: warning: assigning to 'Tcl_ObjType *' (aka 'struct Tcl_ObjType *') from 'const Tcl_ObjType *' (aka 'const struct Tcl_ObjType *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] resultObj->typePtr = &tdomNodeType; ^ ~~~~~~~~~~~~~ 3 warnings generated. ---------- ---------- ../generic/tclexpat.c:964:15: warning: implicit declaration of function 'close' is invalid in C99 [-Wimplicit-function-declaration] close (fd); ^ ../generic/tclexpat.c:970:19: warning: implicit declaration of function 'read' is invalid in C99 [-Wimplicit-function-declaration] nread = read(fd, fbuf, READ_SIZE); ^ 2 warnings generated. ---------- El 17/enero/16 a las 13:53, Gustaf Neumann escribió: > Dear Cesáreo, > > You are right. There is a problem which shows up depending > on the used compilers. The conflict of prototypes is fixed by [1]. > > Since i've fixed also one more probably old issue (setting an > Ns_Set member from different threads leading to a potential > race condidtion), we should release a bugfix version soon. > > best regards > -g > > [1] > https://bitbucket.org/naviserver/nsdbpg/commits/8bd4d0a0cc8f3f4a81305dde225b684bfc16d5af > > Am 17.01.16 um 02:24 schrieb Cesáreo García Rodicio: >> Hi >> >> I'm trying to install naviserver (HEAD) in Mac OS X El Capitan[1] and, >> when installing nsdbpg, I had this error: >> tclcmds.c:1041:1: error: conflicting types for 'blob_send_to_stream' >> (See [2] full log) >> >> Any idea? >> >> Thanks >> Cesáreo >> >> ----- >> [1] >> uname -v >> Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; >> root:xnu-3248.20.55~2/RELEASE_X86_64 >> >> [2] >> ------------------------ Installing Modules/nsdbpg ---------------------- >> Makefile:61: warning: overriding commands for target `cppcheck' >> /usr/local/naviserver/include/Makefile.module:199: warning: ignoring old >> commands for target `cppcheck' >> gcc -I/usr/local/pgsql/include -Os -DNDEBUG -Wall -fno-common -pipe >> -I/usr/local/naviserver/include -I"/usr/local/naviserver/include" >> -DHAVE_CONFIG_H -c -o nsdbpg.o nsdbpg.c >> gcc -I/usr/local/pgsql/include -Os -DNDEBUG -Wall -fno-common -pipe >> -I/usr/local/naviserver/include -I"/usr/local/naviserver/include" >> -DHAVE_CONFIG_H -c -o tclcmds.o tclcmds.c >> tclcmds.c:1041:1: error: conflicting types for 'blob_send_to_stream' >> blob_send_to_stream(Tcl_Interp *interp, Ns_DbHandle *handle, const char >> *lob_id, >> ^ >> tclcmds.c:80:12: note: previous declaration is here >> static int blob_send_to_stream(Tcl_Interp *interp, Ns_DbHandle *handle, >> const char *lob_id, >> ^ >> 1 error generated. >> make: *** [tclcmds.o] Error 1 >> > > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Gustaf N. <ne...@wu...> - 2016-01-17 18:53:44
|
Dear Cesáreo, You are right. There is a problem which shows up depending on the used compilers. The conflict of prototypes is fixed by [1]. Since i've fixed also one more probably old issue (setting an Ns_Set member from different threads leading to a potential race condidtion), we should release a bugfix version soon. best regards -g [1] https://bitbucket.org/naviserver/nsdbpg/commits/8bd4d0a0cc8f3f4a81305dde225b684bfc16d5af Am 17.01.16 um 02:24 schrieb Cesáreo García Rodicio: > Hi > > I'm trying to install naviserver (HEAD) in Mac OS X El Capitan[1] and, > when installing nsdbpg, I had this error: > tclcmds.c:1041:1: error: conflicting types for 'blob_send_to_stream' > (See [2] full log) > > Any idea? > > Thanks > Cesáreo > > ----- > [1] >> uname -v > Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; > root:xnu-3248.20.55~2/RELEASE_X86_64 > > [2] > ------------------------ Installing Modules/nsdbpg ---------------------- > Makefile:61: warning: overriding commands for target `cppcheck' > /usr/local/naviserver/include/Makefile.module:199: warning: ignoring old > commands for target `cppcheck' > gcc -I/usr/local/pgsql/include -Os -DNDEBUG -Wall -fno-common -pipe > -I/usr/local/naviserver/include -I"/usr/local/naviserver/include" > -DHAVE_CONFIG_H -c -o nsdbpg.o nsdbpg.c > gcc -I/usr/local/pgsql/include -Os -DNDEBUG -Wall -fno-common -pipe > -I/usr/local/naviserver/include -I"/usr/local/naviserver/include" > -DHAVE_CONFIG_H -c -o tclcmds.o tclcmds.c > tclcmds.c:1041:1: error: conflicting types for 'blob_send_to_stream' > blob_send_to_stream(Tcl_Interp *interp, Ns_DbHandle *handle, const char > *lob_id, > ^ > tclcmds.c:80:12: note: previous declaration is here > static int blob_send_to_stream(Tcl_Interp *interp, Ns_DbHandle *handle, > const char *lob_id, > ^ > 1 error generated. > make: *** [tclcmds.o] Error 1 > |
From: Cesáreo G. R. <ce...@ce...> - 2016-01-17 01:40:40
|
Hi I'm trying to install naviserver (HEAD) in Mac OS X El Capitan[1] and, when installing nsdbpg, I had this error: tclcmds.c:1041:1: error: conflicting types for 'blob_send_to_stream' (See [2] full log) Any idea? Thanks Cesáreo ----- [1] >> uname -v Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; root:xnu-3248.20.55~2/RELEASE_X86_64 [2] ------------------------ Installing Modules/nsdbpg ---------------------- Makefile:61: warning: overriding commands for target `cppcheck' /usr/local/naviserver/include/Makefile.module:199: warning: ignoring old commands for target `cppcheck' gcc -I/usr/local/pgsql/include -Os -DNDEBUG -Wall -fno-common -pipe -I/usr/local/naviserver/include -I"/usr/local/naviserver/include" -DHAVE_CONFIG_H -c -o nsdbpg.o nsdbpg.c gcc -I/usr/local/pgsql/include -Os -DNDEBUG -Wall -fno-common -pipe -I/usr/local/naviserver/include -I"/usr/local/naviserver/include" -DHAVE_CONFIG_H -c -o tclcmds.o tclcmds.c tclcmds.c:1041:1: error: conflicting types for 'blob_send_to_stream' blob_send_to_stream(Tcl_Interp *interp, Ns_DbHandle *handle, const char *lob_id, ^ tclcmds.c:80:12: note: previous declaration is here static int blob_send_to_stream(Tcl_Interp *interp, Ns_DbHandle *handle, const char *lob_id, ^ 1 error generated. make: *** [tclcmds.o] Error 1 |
From: Gustaf N. <ne...@wu...> - 2016-01-12 11:50:39
|
Am 12.01.16 um 11:21 schrieb David Osborne: > I noticed there is a recent intent-to-package ticket with Debian. > Are there moves afoot to have Naviserver officially included in Debian? Héctor Romojaro is working on that (he is also maintaining the OpenACS debian package). There is a official request to create an official Debian package, but as it looks as the turn-around times of mail with the master maintainer in the Tcl context are long. We keep you updated. I've as well submitted a port to macports https://trac.macports.org/ticket/48917 https://trac.macports.org/ticket/48918 https://trac.macports.org/ticket/48919 which is still in the ticket-queue. if there is interest, it might help to add a "cc me!" or a short hint "that port would be helpful" to the ticket, to raise the urgency... all the best -g |
From: David O. <da...@qc...> - 2016-01-12 10:46:52
|
Thanks Gustaf - that looks great. On-the-fly minification in particular will be very helpful. I noticed there is a recent intent-to-package ticket with Debian. Are there moves afoot to have Naviserver officially included in Debian? |
From: Gustaf N. <ne...@wu...> - 2016-01-11 10:14:41
|
Dear friends, NaviServer 4.99.9 is available. The new version is tagged with naviserver-4.99.9 in mercurial and is as well available at source-forge (naviserver, modules, documentation pages). I'll prepare as well an announcement for c.l.tcl and OpenACS. Below is the section for 4.99.9 from the NEWS file. all the best -gustaf neumann ====================================== NaviServer 4.99.6, released 2016-01-11 ====================================== Changes relative to 4.99.8 146 files changed, 5595 insertions(+), 4389 deletions(-) New Features: * New command "ns_urlspace": this command allows to attach and retrieve arbitrary data to URLs in a hierarchical manner form the Tcl level. The command allows e.g. to write ns-perm like access control in Tcl without much hassle. ns_urlspace set ?-id i? ?-key k? ?-noinherit? /url/ string ns_urlspace get ?-exact? ?-id i? ?-key k? ?-noinherit? /url/ ns_urlspace list ns_urlspace new ns_urlspace unset ?-id i? ?-key k? ?-noinherit? ?-recurse? /url/ * Added ability to optionally minify css and js files on the fly when gzipped content is requested. This is an extension of the gzip_static/gzip_refresh feature (for details see "fastpath" section in "ns_return" man page. * New statistics from nsdb interface: "ns_db stats" returns number and time of handle and sql operations (can be used in connection with e.g. munin for monitoring db health) * Added ability to pass env to ns_proxy (for details see man page of ns_proxy) * Added ability to keep "Host:" header in http client requests (for details, see man page of ns_http) * Improved logging support: - Added log colorization based on ANSI color codes. This feature makes it easier to spot error and warning in the error log file. Log colorization is turned on via configuration parameter "logcolorize" in the "ns/parameters" section in the NaviServer config file. Fine-tuning is possible via "logprefixcolor", "logprefixintensity" and per severity via ns_logctl severity severity-level ?-color color? \ ?-intensity intensity? ?bool? When viewing a colorized error.log with less, use "less -r". - Added ability to log selectively SQL statements depending on pool and duration of the SQL command (configuration parameter "logMinDuration" for per-pool configuration sections, new command "ns_db logminduration ..."). - Provide context in error log entries, when Tcl eval raises an error (this allows better distinction from where the exception was raised) - Added TCP_FASTOPEN support for Mac OS X 10.11 Bug Fixes: * the urlspace code now can be compiled with and without __URLSPACE_OPTIMIZE__. The performance difference is probably for most application little. * fix "floating-point" format for Ns_ObjvTime(): 1.05 was interpreted as 1.5 before * fix binary handling and content-type in http client requests (e.g. for -body in ns_http command) * fix bad interaction between chunked encoding and gzipped content (when closing gzip stream) * Added config option for disabling directorylisting (fastpath config option "directorylisting none") * fix quoted entries in access log, when quotes are contained in the content * Don't use TCP_CORK on UDP sockets * Ensure list nature of errorCode is preserved in proxy calls * Remove potential xss attack (mostly false positives) on error messages that are directly generated from user strings by NaviServer * Improved "signal lost" handling (timeout happens, but connPtr is provided). On some sites the previous approach was leading to a state stuck in a while in the error state. * Fixed off-by-one error in ns_server. NsTclServerObjCmd was incorrectly checking argc after parsing options. As a result, "ns_server -pool {}" (pool given, no subcommand) would segfault. Documentation improvements: * fix obsolete documentation for ns_register_proc * new man page for "ns_urlspace" * improve documentation for main-features, ns_cache, ns_connchan, ns_db, ns_http, ns_job, ns_log, ns_normalizepath, ns_proxy, ns_register, ns_return, ns_sleep, ns_time, nsv, * include logo of generated html docs via css to ease Debian packaging (silence lintian) Tcl API Changes: * improve compatibility of ns_eval with Tcl's eval. * new API functions - ns_urlspace set|get|list|new|unset ... - ns_logctl severity severity-level ?-color color? ?-intensity intensity? ?bool? - ns_db logminduration ... - ns_db stats - ns_proxy config ... -env ns-set ... - ns_http queue .... -keep_host_header C API Changes: * Added Ns_GetTimeFromString: provide API callable from config file to convert strings to ns_time (supporting "sec:usec" and "sec.fraction" formats) * Mark broken and unused function Ns_UrlSpecificGetFast() as deprecated * Added Ns_(No)CloseOnExec implementation for Win32 * Added Ns_SetIUpdate() * Ns_Cancel(), Ns_Pause(), Ns_Resume() return "bool" instead of "int" Incompatible API Changes: * Potential incompatibility: "ns_eval" behaves now closer to Tcl "eval" (e.g. allows to define procs with comments) Configuration Changes: * Improved sample configuration for OpenACS, sample-config and nsssl * Added cppcheck target to Makefile.module Code Changes: * Updated list of known HTTP status codes * Code cleanup: - use real boolean type when C99 is available (necessary for modules implemented in C++) - add const declarations - reduce implicit signed/unsigned conversions - reduce variable scopes - make code more uniform - better handling of nonnull asserts (don't raise warnings for these cases for most-recent gcc6 versions, when -pedantic is used) - prefer single returns from functions when possible - use NaviServer argv passing Ns_ParseObjv() on more occasions - replaced obsolete function 'asctime' by strftime - added fallback for definition of L_tmpnam, since the fallback from Tcl was removed on 2015-07-15 - various changes for further silencing of static checkers (cppcheck and clang static checker) * Extended regression tests Important changes in modules: * nsdbpg: fixes for "ns_pg blob*" * nsstats: added db-pool statistics, improved formatting * nsssl: - improved binary handling for "-body" (client procs), - ability to keep "Host:" header field * nsdbpg, nssmtpd, nsdns, nssnmp, nsudp, nsphp,nsdhcpd, nsssl, nsdbi: - code cleanup * changes in modules: 13 files changed, 116 insertions(+), 856 deletions(-) |
From: Gustaf N. <ne...@wu...> - 2016-01-01 17:21:18
|
Dear friends of NaviServer, below is a list of changes between NaviServer 4.99.8 and 4.99.9. In case nobody objects, or there are some other urgent changes from you, I'll finish a release of the current tip version of NaviServer the next days. all the best -gustaf neumann ====================================== NaviServer 4.99.6, released 2016-xx-xx ====================================== Changes relative to 4.99.8 145 files changed, 5504 insertions(+), 4323 deletions(-) New Features: * New command "ns_urlspace": this command allows to attach and retrieve arbitrary data to URLs in a hierarchical manner form the Tcl level. The command allows e.g. to write ns-perm like access control in Tcl without much hassle. ns_urlspace set ?-id i? ?-key k? ?-noinherit? /url/ string ns_urlspace get ?-exact? ?-id i? ?-key k? ?-noinherit? /url/ ns_urlspace list ns_urlspace new ns_urlspace unset ?-id i? ?-key k? ?-noinherit? ?-recurse? /url/ * Added ability to optionally minify css and js files on the fly when gzipped content is requested. This is an extension of the gzip_static/gzip_refresh feature (for details see "fastpath" section in "ns_return" man page. * New statistics from nsdb interface: "ns_db stats" returns number and time of handle and sql operations (can be used in connection with e.g. munin for monitoring db health) * Added ability to pass env to ns_proxy (for details see man page of ns_proxy) * Added ability to keep "Host:" header in http client requests (for details, see man page of ns_http) * Improved logging support: - Added log colorization based on ANSI color codes. This feature makes it easier to spot error and warning in the error log file. Log colorization is turned on via configuration parameter "logcolorize" in the "ns/parameters" section in the NaviServer config file. Fine-tuning is possible via "logprefixcolor", "logprefixintensity" and per severity via ns_logctl severity severity-level ?-color color? \ ?-intensity intensity? ?bool? When viewing a colorized error.log with less, use "less -r". - Added ability to log selectively SQL statements depending on pool and duration of the SQL command (configuration parameter "logMinDuration" for per-pool configuration sections, new command "ns_db logminduration ..."). - Provide context in error log entries, when Tcl eval raises an error (this allows better distinction from where the exception was raised) Bug Fixes: * the urlspace code now can be compiled with and without __URLSPACE_OPTIMIZE__. The performance difference is probably for most application little. * fix "floating-point" format for Ns_ObjvTime(): 1.05 was interpreted as 1.5 before * fix binary handling and content-type in http client requests (e.g. for -body in ns_http command) * fix bad interaction between chunked encoding and gzipped content (when closing gzip stream) * Added config option for disabling directorylisting (fastpath config option "directorylisting none") * fix quoted entries in access log, when quotes are contained in the content * Don't use TCP_CORK on UDP sockets * Ensure list nature of errorCode is preserved in proxy calls * Remove potential xss attack (mostly false positives) on error messages that are directly generated from user strings by NaviServer * Improved "signal lost" handling (timeout happens, but connPtr is provided). On some sites the previous approach was leading to a state stuck in a while in the error state. * Fixed off-by-one error in ns_server. NsTclServerObjCmd was incorrectly checking argc after parsing options. As a result, "ns_server -pool {}" (pool given, no subcommand) would segfault. Documentation improvements: * fix obsolete documentation for ns_register_proc * new man page for "ns_urlspace" * improve documentation for main-features, ns_cache, ns_connchan, ns_db, ns_http, ns_job, ns_log, ns_normalizepath, ns_proxy, ns_register, ns_return, ns_sleep, ns_time, nsv, * include logo of generated html docs via css to ease Debian packaging (silence lintian) Tcl API Changes: * improve compatibility of ns_eval with Tcl's eval. * new API functions - ns_urlspace set|get|list|new|unset ... - ns_logctl severity severity-level ?-color color? ?-intensity intensity? ?bool? - ns_db logminduration ... - ns_db stats - ns_proxy config ... -env ns-set ... - ns_http queue .... -keep_host_header C API Changes: * Added Ns_GetTimeFromString: provide API callable from config file to convert strings to ns_time (supporting "sec:usec" and "sec.fraction" formats) * Mark broken and unused function Ns_UrlSpecificGetFast() as deprecated * Added Ns_(No)CloseOnExec implementation for Win32 * Added Ns_SetIUpdate() Incompatible API Changes: * Potential incompatibility: "ns_eval" behaves now closer to Tcl "eval" (e.g. allows to define procs with comments) Configuration Changes: * Improved sample configuration for OpenACS, sample-config and nsssl Code Changes: * Updated list of known HTTP status codes * Code cleanup: - use real boolean type when C99 is available (necessary for modules implemented in C++) - add const declarations - reduce implicit signed/unsigned conversions - make code more uniform - better handling of nonnull asserts (don't raise warnings for these cases for most-recent gcc6 versions, when -pedantic is used) - prefer single returns from functions when possible - use NaviServer argv passing Ns_ParseObjv() on more occasions - replaced obsolete function 'asctime' by strftime - added fallback for definition of L_tmpnam, since the fallback from Tcl was removed on 2015-07-15 - various changes for further silencing of static checkers (cppcheck and clang static checker) * Extended regression tests |
From: Gustaf N. <ne...@wu...> - 2015-11-19 10:55:39
|
yes, this has pretty much potential for various kinds of applications, also for templating, redirects, caching (meta data), etc. However, i would not recommend it for logging, since the associated values are server-wide values that require mutex locking (somewhat like hierarchical nsvs). A higher level fronted for logging should be doable on the tcl layer and would run essentially lock-free. One other value of the ns_urlspace command is that it makes the urlspace behavior easier regression-test-able. The behavior of the urlspace is non-trivial, especially the interactions with the various flags. I've already cleaned up some broken stuff (*FAST* flag + call). There is also some potential to improve the code performance-wise, but first the detailed behavior has to be "documented" in the regression test to suite to avoid potentially unexpected side effects. I've committed a first version of ns_urlspace.test, which shows already 3 somewhat unexpected cases (marked with ###). These cases should be fixed (or documented), but i'll add some more test cases soon. so treat the code as experimental... -g Am 19.11.15 um 08:21 schrieb Jeff Rogers: > Bitbucket wrote: >> 3 new commits in naviserver: >> https://bitbucket.org/naviserver/naviserver/commits/2758b9f8392f/ >> Changeset: 2758b9f8392f >> User: gustafn >> Date: 2015-11-18 19:35:25+00:00 >> Summary: - The new command "ns_urlspace" that allows to attach data to URLs in >> a hierarchical manner form the Tcl level. The command allows e.g. to >> write ns-perm like access control in Tcl without much hassle. > This is very cool; it's something I've wanted to expose as a tcl api for > a long time. > > A thought for a further extension to this is to make the separator > character changeable instead of only "/", so strings represented as > "a.b.c.d" or "a:b:c:d" could be handled too. However, that would > probably add a good deal of complexity that is unjustified lacking an > actual use case. > > I was also thinking that the trie structure could be applicable to > logging configurations: enabling logging for "debug/sql" and "info/*" > but not "debug/*" would be really nice. The "/" as a separator > character seems odd at first, but ultimately unimportant as it conveys > the same hierarchical information as "." or ":" would. > > -J > |
From: Jeff R. <dv...@di...> - 2015-11-19 07:53:50
|
Bitbucket wrote: > 3 new commits in naviserver: > https://bitbucket.org/naviserver/naviserver/commits/2758b9f8392f/ > Changeset: 2758b9f8392f > User: gustafn > Date: 2015-11-18 19:35:25+00:00 > Summary: - The new command "ns_urlspace" that allows to attach data to URLs in > a hierarchical manner form the Tcl level. The command allows e.g. to > write ns-perm like access control in Tcl without much hassle. This is very cool; it's something I've wanted to expose as a tcl api for a long time. A thought for a further extension to this is to make the separator character changeable instead of only "/", so strings represented as "a.b.c.d" or "a:b:c:d" could be handled too. However, that would probably add a good deal of complexity that is unjustified lacking an actual use case. I was also thinking that the trie structure could be applicable to logging configurations: enabling logging for "debug/sql" and "info/*" but not "debug/*" would be really nice. The "/" as a separator character seems odd at first, but ultimately unimportant as it conveys the same hierarchical information as "." or ":" would. -J |
From: Gustaf N. <ne...@wu...> - 2015-10-18 15:48:35
|
Dear Rodrigo, The C-API of NaviServer manifests itself through the external function definitions of libnsd other the other core libraries. The best sources are the naviserver/include/ns.h [1] and the source files (e.g. [2]). All public functions are described based on a standardized template (function description, results, side effects). However, so far there is currently no single document, that summarizes the C-API functions. From my experience, C-developer get around quite well with the existing API descriptions. A good source for usage cases of the C-API are the 49 extra modules from [3], which are mostly written in C. Concerning the possible configuration parameters: NaviServer follows an open model, where the entries of the config files fill a kind of a database, where NaviServer itself or some NaviServer modules or applications (such as OpenACS) can read its config values from it. NaviServer offers in good Tcl tradition an introspection interface that allows you to see, what parameters with what values are currently in use. I would recommend to use the nsstats module [4], which offers a web interface to many of the configuration options and runtime statistics. The valid parameter options and their semantics are described in the various modules, such as e.g. in [5,6] and as well in the provided sample config files (e.g. [7,8]). hope this helps -gn [1] https://bitbucket.org/naviserver/naviserver/src/906257d0d90c8b71d323e61261c6515268397f8b/include/ns.h?at=default&fileviewer=file-view-default#ns.h-611 [2] https://bitbucket.org/naviserver/naviserver/src/906257d0d90c8b71d323e61261c6515268397f8b/nsd/set.c?at=default&fileviewer=file-view-default#set.c-442 [3] https://bitbucket.org/naviserver/ [4] https://bitbucket.org/naviserver/nsstats [5] http://naviserver.sourceforge.net/n/manual/files/admin-db.html#subsection2 [6] http://naviserver.sourceforge.net/n/nssock/files/nssock.html [7] https://bitbucket.org/naviserver/naviserver/src/906257d0d90c8b71d323e61261c6515268397f8b/sample-config.tcl.in?at=default&fileviewer=file-view-default [8] https://bitbucket.org/naviserver/naviserver/src/906257d0d90c8b71d323e61261c6515268397f8b/openacs-config.tcl?at=default&fileviewer=file-view-default Am 12.10.15 um 18:53 schrieb hr...@gm...: > Dear Sirs! > > I just installed naviserver and have some questions. I hope this is > the right place. > > http://naviserver.sourceforge.net/n/manual/files/main-features.html > > Speaks about a C api, but I dont find the documentation about it. > Where is it? > > And a much more elementary question about configuration: I dont know > where to get information about what parameters are possible for each > section. For example: what are the configurable parameters for the > section "ns/parameters"? Where I find it in the documentation? > > Thanks > Rodrigo. > |
From: David O. <da...@qc...> - 2015-10-16 13:42:55
|
Thanks Gustaf - that's perfect On 16 October 2015 at 12:56, Gustaf Neumann <ne...@wu...> wrote: > Dear David, > > from reading the source code, a test for error results was broken (see > [1]). > -g > > PS: We use currently tcllib since it supports as well STARTTLS. > > [1] > > https://bitbucket.org/naviserver/naviserver/commits/6657f9b1b41aaefc5b452ed0c869659a682813af > > Am 15.10.15 um 18:27 schrieb David Osborne: > > Hi, > > > > Been trying to use Naviserver's ns_sendmail for the first time. > > > > By default, speaking to localhost:25 (under Debian) I'm getting a > > "Operation now in progress" error at the point where ns_sockopen is > > called against localhost:25. > > > > I modified the code to use the -nonblock switch (just as an experiment > > rather than anything else) and it now works for me. > > > > Is this something that's just peculiar to my environment? > > > > > > ------------------------------------------------------------------------------ > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Gustaf N. <ne...@wu...> - 2015-10-16 11:56:46
|
Dear David, from reading the source code, a test for error results was broken (see [1]). -g PS: We use currently tcllib since it supports as well STARTTLS. [1] https://bitbucket.org/naviserver/naviserver/commits/6657f9b1b41aaefc5b452ed0c869659a682813af Am 15.10.15 um 18:27 schrieb David Osborne: > Hi, > > Been trying to use Naviserver's ns_sendmail for the first time. > > By default, speaking to localhost:25 (under Debian) I'm getting a > "Operation now in progress" error at the point where ns_sockopen is > called against localhost:25. > > I modified the code to use the -nonblock switch (just as an experiment > rather than anything else) and it now works for me. > > Is this something that's just peculiar to my environment? > |
From: David O. <da...@qc...> - 2015-10-15 16:58:40
|
Hi, Been trying to use Naviserver's ns_sendmail for the first time. By default, speaking to localhost:25 (under Debian) I'm getting a "Operation now in progress" error at the point where ns_sockopen is called against localhost:25. I modified the code to use the -nonblock switch (just as an experiment rather than anything else) and it now works for me. Is this something that's just peculiar to my environment? <---------> diff -r 7dd17a2cf070 tcl/sendmail.tcl --- a/tcl/sendmail.tcl Mon Aug 03 19:02:11 2015 +0200 +++ b/tcl/sendmail.tcl Thu Oct 15 17:21:02 2015 +0100 @@ -254,7 +254,7 @@ set smtphost [ns_config -set ns/parameters mailhost "localhost"] } - set fds [ns_sockopen -timeout $timeout $smtphost $smtpport] + set fds [ns_sockopen -nonblock $smtphost $smtpport] set rfd [lindex $fds 0] set wfd [lindex $fds 1] <------------> -- David |
From: <hr...@gm...> - 2015-10-12 16:56:13
|
Dear Sirs! I just installed naviserver and have some questions. I hope this is the right place. http://naviserver.sourceforge.net/n/manual/files/main-features.html Speaks about a C api, but I dont find the documentation about it. Where is it? And a much more elementary question about configuration: I dont know where to get information about what parameters are possible for each section. For example: what are the configurable parameters for the section "ns/parameters"? Where I find it in the documentation? Thanks Rodrigo. |
From: Gustaf N. <ne...@wu...> - 2015-09-27 17:00:21
|
Am 25.09.15 um 15:58 schrieb Zoran Vasiljevic: > On 25 Sep 2015, at 15:44, Gustaf Neumann <ne...@wu...> wrote: > >> kind of. the fix was addressing a problem in rivet under Linux, >> the consequences were not easy to spot from the code but hit >> all multi-threaded tcl applications, including NaviServer. >> It also lead to bug-reports from bsd about "massive slowdowns". >> > I see... so you had to fix that mess... > At this point I believe you've done the > fix so that it will not harm us! it was already causing harm. i started to look at the problem, when one quite large NaviServer based site was suddenly running our of memory. This site was using [exec ...] without nsproxy (for no good reason). The [exec] call hang sometimes in a fork(), after duplicating the memory. This site had a maximum of 90 connection threads configured, using a footprint of several GB. When forking such a monster multiple times, and the fork hangs, one runs soon out of memory... The obvious fix was to use nsproxy for that site, but still, the Tcl behavior was bad enough to investigate further.. > I guess they wanted to make [fork] working > which simply cannot be done MT-safe(ly). A few people tried to argue for that, but not long :). The problem was that rivet requires after a fork() a notifier thread running, such that [vwait ...] etc. works. Therefore, it was necessary to use a hook that starts the notifier thread after a fork() operation. That bad thing is that the implementation in 2013 created a notifier thread after every fork, (even for [exec], where it is completely useless). Furthermore, starting a notifier threads requires Tcl_MutexLock(), and even Tcl_MutexLock() requires a (master) lock to function (Tcl maintains a list of mutexes). If one locks this master mutex before fork (which takes a while), all parallelism is gone, since every mutex operation is serialized ... and that happened for every exec! Finally i implemented the notifier thread creation in a lazy manner (create the notifier thread when needed, i.e. not during [exec]), and used the pthread-API for the notifier thread management instead of the Tcl_Mutex* interface. > I've been telling this for years but people > won't listen. And there is some substantional > portion in politics there, which I regret :-( i don't think that politics was a main blocker. It was rather missing problem awareness (most application are not using threads), and the hope for a general [fork] call in Tcl, which makes me shudder when i think about heavy multi-threading applications. -g |
From: Clinciu A. <the...@ya...> - 2015-09-25 16:32:54
|
Hi all The recompilation of naviserver 4.99.8 and modules did not seem to solve the crashes nsd: set.c:61: Ns_SetUpdate: Assertion `value != ((void *)0)' failed. It now seems to crash more often. However after days of extensive searching and going through ALL naviserver settings i did find the truncation culprit which not only truncated images but everything from .txt,.zip, .pdf,.css and .jpg files whenever the server was accesed from non localhost. This is because testing on localhost did not seem to affect it and I have no idea why. I've found that just one setting seemed to screw everything up (including total loading time of page extending to keepwait time): The fastpath settings of cachemaxentry: ns_param cachemaxentry [expr 70*1024];#8192 I've tried to set it to multipliers of 2 like 256*1024 but no luck. So once i've set it back to 8*1024 it seemed to solve the issue completly. The site loads faster than with fastpath on. Even the bloated ckeditor loads faster, before this i had to refresh the page 3-5 times to just see all the buttons. Is this something worth looking into? Because JS and CSS today are way bigger than 8 kb the fastpath would be valuable (that's why i wanted to use it) in my point of view. Hope this helps anyone who ever has the same problem as I did for the past months. I can't believe how happy I am right now, i just thought i must have been doing something wrong during compilation or setup that caused naviserver to render so slow. With regards, Clinciu Andrei George "Vorba buna, zambetul si fapta binefacatoare sunt raze ale soarelui rasfrante in sufletul omului." "A good word, a smile and a good deed are just like rays of the sun reflected in man's soul." by Nicolae Iorga On Friday, September 25, 2015 4:58 PM, Zoran Vasiljevic <zv...@ar...> wrote: On 25 Sep 2015, at 15:44, Gustaf Neumann <ne...@wu...> wrote: > kind of. the fix was addressing a problem in rivet under Linux, > the consequences were not easy to spot from the code but hit > all multi-threaded tcl applications, including NaviServer. > It also lead to bug-reports from bsd about "massive slowdowns". > I see... so you had to fix that mess... At this point I believe you've done the fix so that it will not harm us! I guess they wanted to make [fork] working which simply cannot be done MT-safe(ly). I've been telling this for years but people won't listen. And there is some substantional portion in politics there, which I regret :-( ------------------------------------------------------------------------------ _______________________________________________ naviserver-devel mailing list nav...@li... https://lists.sourceforge.net/lists/listinfo/naviserver-devel |
From: Zoran V. <zv...@ar...> - 2015-09-25 13:58:30
|
On 25 Sep 2015, at 15:44, Gustaf Neumann <ne...@wu...> wrote: > kind of. the fix was addressing a problem in rivet under Linux, > the consequences were not easy to spot from the code but hit > all multi-threaded tcl applications, including NaviServer. > It also lead to bug-reports from bsd about "massive slowdowns". > I see... so you had to fix that mess... At this point I believe you've done the fix so that it will not harm us! I guess they wanted to make [fork] working which simply cannot be done MT-safe(ly). I've been telling this for years but people won't listen. And there is some substantional portion in politics there, which I regret :-( |
From: Gustaf N. <ne...@wu...> - 2015-09-25 13:44:57
|
Am 25.09.15 um 14:46 schrieb Zoran Vasiljevic: > On 25 Sep 2015, at 14:38, Gustaf Neumann <ne...@wu...> wrote: > >> which will be fixed in 8.5.19, as well as the bug mentioned below (which can >> cause problems for all kinds of forks, when e.g. nsproxy is not used for "exec", >> or for nscgi). > Can it be that somebody in Tcl was "too clever" and > short-sightedly wanted to solve the un-solvable? kind of. the fix was addressing a problem in rivet under Linux, the consequences were not easy to spot from the code but hit all multi-threaded tcl applications, including NaviServer. It also lead to bug-reports from bsd about "massive slowdowns". > So Tcl 8.5.18 is really useless for NS? for production, yes. The forking/exec/cgi problem can be avoided by avoiding exec and nscgi (probably nsphp). The bug was introduced in Tcl 8.5.15 and Tcl 8.6.1. All later Tcl versions are affected. Jan Nijtmans has back-ported the changes yesterday to the Tcl core-8-5tcl-8-5 branch targeted for the next Tcl 8.5 release. So, if one requires a functionality based on fork, the best approach is to stick to Tcl 8.5.14 for the time being. -g |
From: Zoran V. <zv...@ar...> - 2015-09-25 13:16:50
|
On 25 Sep 2015, at 14:38, Gustaf Neumann <ne...@wu...> wrote: > which will be fixed in 8.5.19, as well as the bug mentioned below (which can > cause problems for all kinds of forks, when e.g. nsproxy is not used for "exec", > or for nscgi). Can it be that somebody in Tcl was "too clever" and short-sightedly wanted to solve the un-solvable? So Tcl 8.5.18 is really useless for NS? |
From: Gustaf N. <ne...@wu...> - 2015-09-25 12:38:58
|
I would not recommend using 8.5.18, using something in the range of 8.5.15 to 8.5.17 should be ok. We were hit not long ago by the following bug in Tcl 8.5.18 * http://core.tcl.tk/tcl/info/879a0747bee593e2 * http://core.tcl.tk/tcl/info/4b964e7afb811898 which will be fixed in 8.5.19, as well as the bug mentioned below (which can cause problems for all kinds of forks, when e.g. nsproxy is not used for "exec", or for nscgi). -g http://core.tcl.tk/tcl/tktview/57945b574a6df0332efc4ac96b066f7c347b28f7 Am 25.09.15 um 14:04 schrieb Clinciu Andrei: > Dear Gustaf, > > Thanks for the extra make flags, it now compiles successfully. > I never imagined 8.6 would be a culprit or that there could be so many > differences. But it's worth checking it out. > I'll give it a try locally to see if nothing breaks from downgrading > to 8.6. Although i'm sure i have to find some compatibility layers for > some commands like try,zlib, etc and see if tdbc works properly with 8.5. > > Is tcl 8.5.18 also good or is it better safer to stick to 8.5.15 you > mentioned? > With regards, > Clinciu Andrei George > > "Vorba buna, zambetul si fapta binefacatoare sunt raze ale soarelui > rasfrante in sufletul omului." > "A good word, a smile and a good deed are just like rays of the sun > reflected in man's soul." by Nicolae Iorga > > > > On Friday, September 25, 2015 12:42 PM, Gustaf Neumann > <ne...@wu...> wrote: > > > Dear Andrei, > > Thanks for the compile-log. The problem is that the compiler flags > that are > picked up in your environment include a " > -fvisibility=hidden", most likely > picked up from tcl 8.6.1. Using "-fvisibility=hidden" should work > certainly, > an was fixed in the tip versions. > > The compilation works well with 4.99.8, if you either compile against > Tcl 8.5.* or > when you use > > make "CFLAGS_EXTRA=-fPIC -pipe" > > It might be, that the problems you are experiencing have to do with > tcl8.6. > We use on all our production systems tcl 8.5.* (e.g. on openacs.org: > Tcl 8.5.15). > If you have the chance to use tcl 8.5, please try. > > all the best > -g > > > Am 25.09.15 um 10:43 schrieb Clinciu Andrei: >> Hi >> >> I've tried compiling the 4.99.8 and I remembered why I even went to >> get the bitbucket version, because of failure to compile. >> >> Doing: >> *./configure --prefix=/opt/ns --enable-symbols --enable-threads* >> *make -j8 * >> *or simply 'make' * >> Also trying with autoconf (maybe the configure missed something?) >> This however was not an issue for the bitbucket version at that time >> >> Error: >> libnsd.so: undefined reference to `NS_finalshutdown' >> collect2: error: ld returned 1 exit status >> make[1]: *** [nsd] Error 1 >> make[1]: Leaving directory >> `/home/lostone/naviserver/naviserver-4.99.8/nsd' >> make: *** [all] Error 1 >> >> It's worthy to note that I've also compiled the 4.99.7 version >> *without any problem* >> >> make.log : Paste2.org - Viewing Paste G2a9BEmz >> <http://paste2.org/G2a9BEmz> >> >> I sure hope i'm not bugging you guys:) >> >> With regards, >> Clinciu Andrei George >> >> >> "Vorba buna, zambetul si fapta binefacatoare sunt raze ale soarelui >> rasfrante in sufletul omului." >> "A good word, a smile and a good deed are just like rays of the sun >> reflected in man's soul." by Nicolae Iorga > > > -- > Univ.Prof. Dr. Gustaf Neumann > WU Vienna > Institute of Information Systems and New Media > Welthandelsplatz 1, A-1020 Vienna, Austria > > -- Univ.Prof. Dr. Gustaf Neumann WU Vienna Institute of Information Systems and New Media Welthandelsplatz 1, A-1020 Vienna, Austria |
From: Clinciu A. <the...@ya...> - 2015-09-25 12:07:31
|
Dear Gustaf, Thanks for the extra make flags, it now compiles successfully. I never imagined 8.6 would be a culprit or that there could be so many differences. But it's worth checking it out. I'll give it a try locally to see if nothing breaks from downgrading to 8.6. Although i'm sure i have to find some compatibility layers for some commands like try,zlib, etc and see if tdbc works properly with 8.5. Is tcl 8.5.18 also good or is it better safer to stick to 8.5.15 you mentioned? With regards, Clinciu Andrei George "Vorba buna, zambetul si fapta binefacatoare sunt raze ale soarelui rasfrante in sufletul omului." "A good word, a smile and a good deed are just like rays of the sun reflected in man's soul." by Nicolae Iorga On Friday, September 25, 2015 12:42 PM, Gustaf Neumann <ne...@wu...> wrote: Dear Andrei, Thanks for the compile-log. The problem is that the compiler flags that are picked up in your environment include a " -fvisibility=hidden", most likely picked up from tcl 8.6.1. Using "-fvisibility=hidden" should work certainly, an was fixed in the tip versions. The compilation works well with 4.99.8, if you either compile against Tcl 8.5.* or when you use make "CFLAGS_EXTRA=-fPIC -pipe" It might be, that the problems you are experiencing have to do with tcl8.6. We use on all our production systems tcl 8.5.* (e.g. on openacs.org: Tcl 8.5.15). If you have the chance to use tcl 8.5, please try. all the best -g Am 25.09.15 um 10:43 schrieb Clinciu Andrei: Hi I've tried compiling the 4.99.8 and I remembered why I even went to get the bitbucket version, because of failure to compile. Doing: ./configure --prefix=/opt/ns --enable-symbols --enable-threads make -j8 or simply 'make' Also trying with autoconf (maybe the configure missed something?) This however was not an issue for the bitbucket version at that time Error: libnsd.so: undefined reference to `NS_finalshutdown' collect2: error: ld returned 1 exit status make[1]: *** [nsd] Error 1 make[1]: Leaving directory `/home/lostone/naviserver/naviserver-4.99.8/nsd' make: *** [all] Error 1 It's worthy to note that I've also compiled the 4.99.7 version without any problem make.log : Paste2.org - Viewing Paste G2a9BEmz I sure hope i'm not bugging you guys:) With regards, Clinciu Andrei George "Vorba buna, zambetul si fapta binefacatoare sunt raze ale soarelui rasfrante in sufletul omului." "A good word, a smile and a good deed are just like rays of the sun reflected in man's soul." by Nicolae Iorga -- Univ.Prof. Dr. Gustaf Neumann WU Vienna Institute of Information Systems and New Media Welthandelsplatz 1, A-1020 Vienna, Austria |