Supporting PCRE 10.xx with (argh!) C89
G/A Rain, so went in search of something to do. The attached patch is proof(?) C89 can still work with the big stuff at least; compiles all the needed bits of PCRE 10.22 and only finds one (cast) error which I think other compilers will whinge/warn about also. AFAIK PCRE is no longer a supplied source and the patch removes build bits that make that assumption, and support for PCRE versions prior to 8.x... Mostly a day waster exercise and FYI. Norm Index: NWGNUmakefile === --- NWGNUmakefile (revision 1781186) +++ NWGNUmakefile (working copy) @@ -73,9 +73,27 @@ # These flags will come after CFLAGS # XCFLAGS += \ - -DHAVE_CONFIG_H \ $(EOLIST) +ifdef WITH_PCRE2 +# PCRE 10.xx + PCRELIB = $(OBJDIR)/pcre2-8.lib + +XCFLAGS += \ + -DHAVE_CONFIG_H \ + -DHAVE_PCRE2 \ + -DPCRE2_CODE_UNIT_WIDTH=8 \ + $(EOLIST) +else +# PCRE 8.xx + PCRELIB = $(OBJDIR)/pcre.lib + +XCFLAGS += \ + -DHAVE_CONFIG_H \ + $(EOLIST) + +endif + # # These defines will come after DEFINES # @@ -355,10 +373,32 @@ # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # -ifeq "$(wildcard $(PCRE)/pcre.c)" "$(PCRE)/pcre.c" +ifdef WITH_PCRE2 FILES_lib_objs = \ - $(OBJDIR)/pcre.o \ + $(OBJDIR)/chartables.o \ + $(OBJDIR)/pcre2_auto_possess.o \ + $(OBJDIR)/pcre2_compile.o \ + $(OBJDIR)/pcre2_config.o \ + $(OBJDIR)/pcre2_context.o \ + $(OBJDIR)/pcre2_dfa_match.o \ + $(OBJDIR)/pcre2_error.o \ + $(OBJDIR)/pcre2_find_bracket.o \ + $(OBJDIR)/pcre2_jit_compile.o \ + $(OBJDIR)/pcre2_maketables.o \ + $(OBJDIR)/pcre2_match.o \ + $(OBJDIR)/pcre2_match_data.o \ + $(OBJDIR)/pcre2_newline.o \ + $(OBJDIR)/pcre2_ord2utf.o \ + $(OBJDIR)/pcre2_pattern_info.o \ + $(OBJDIR)/pcre2_string_utils.o \ + $(OBJDIR)/pcre2_study.o \ + $(OBJDIR)/pcre2_substitute.o \ + $(OBJDIR)/pcre2_substring.o \ + $(OBJDIR)/pcre2_tables.o \ + $(OBJDIR)/pcre2_ucd.o \ + $(OBJDIR)/pcre2_valid_utf.o \ + $(OBJDIR)/pcre2_xclass.o \ $(EOLIST) else @@ -373,11 +413,6 @@ $(OBJDIR)/pcre_tables.o \ $(OBJDIR)/pcre_version.o \ $(EOLIST) -ifeq "$(wildcard $(PCRE)/pcre_try_flipped.c)" "$(PCRE)/pcre_try_flipped.c" -FILES_lib_objs += \ - $(OBJDIR)/pcre_try_flipped.o \ - $(EOLIST) -endif endif @@ -460,10 +495,8 @@ prebuild :: FORCE $(MAKE) -C $(SERVER) -f NWGNUmakefile - $(MAKE) -C $(PCRE) -f NWGNUmakefile $(call MKDIR,$(PREBUILD_INST)) $(call COPY,$(SERVER)/$(OBJDIR)/*.nlm, $(PREBUILD_INST)/) - $(call COPY,$(PCRE)/$(OBJDIR)/*.nlm, $(PREBUILD_INST)/) # # Any specialized rules here @@ -471,7 +504,7 @@ vpath %.c server:modules/arch/netware:modules/http:modules/aaa:modules/mappers vpath %.c modules/generators:modules/metadata:modules/filters:modules/loggers -vpath %.c modules/core:os/netware:server/mpm/netware:$(PCRE) +vpath %.c modules/core:os/netware:server/mpm/netware:$(PCRESRC) $(OBJDIR)/chartables.o: os/netware/chartables.c Index: build/NWGNUenvironment.inc === --- build/NWGNUenvironment.inc (revision 1781186) +++ build/NWGNUenvironment.inc (working copy) @@ -56,11 +56,17 @@ endif ifndef PCRESRC -PCRESRC = $(AP_WORK)/srclib/pcre +$(error PCRESRC does not point to a valid PCRE[2] source tree) endif -ifneq "$(wildcard $(PCRESRC)/pcre-config.in)" "$(PCRESRC)/pcre-config.in" +ifdef WITH_PCRE2 +ifneq "$(wildcard $(PCRESRC)/pcre2.h.in)" "$(PCRESRC)/pcre2.h.in" +$(error PCRESRC does not point to a valid PCRE2 source tree) +endif +else +ifneq "$(wildcard $(PCRESRC)/pcre.h.in)" "$(PCRESRC)/pcre.h.in" $(error PCRESRC does not point to a valid PCRE source tree) endif +endif # This is a placeholder # ifndef ZLIBSDK @@ -377,7 +383,6 @@ APULDAP = $(APRUTIL)/ldap XML = $(APRUTIL)/xml APRTEST = $(APR)/test -PCRE = $(PCRESRC) PREBUILD_INST = $(SRC)/nwprebuild @@ -389,7 +394,6 @@ APRUTLIB = $(APRUTIL)/$(OBJDIR)/aprutil.lib APULDAPLIB = $(APULDAP)/$(OBJDIR)/apuldap.lib STMODLIB = $(STDMOD)/$(OBJDIR)/stdmod.lib -PCRELIB = $(SRC)/$(OBJDIR)/pcre.lib NWOSLIB = $(NWOS)/$(OBJDIR)/netware.lib SERVLIB = $(SERVER)/$(OBJDIR)/server.lib HTTPDLIB = $(HTTPD)/$(OBJDIR)/httpd.lib Index: build/NWGNUmakefile === --- build/NWGNUmakefile (revision 1781186) +++ build/NWGNUmakefile (working copy) @@ -19,9 +19,19 @@ FILES_prebuild_headers = \ $(SRC)/include/ap_config_layout.h \ $(NWOS)/test_char.h \ - $(PCRE)/config.h \ - $(PCRE)/pcre.h \ $(EOLIST) + +ifdef WITH_PCRE2 +FILES_prebuild_headers += \ + $(PCRESRC)/config.h \ + $(PCRESRC)/pcre2.h \ + $(EOLIST) +else +FILES_prebuild_headers += \ + $(PCRESRC)/config.h \ + $(PCRESRC)/pcre.h \ + $(EOLIST) +endif nlms :: libs $(NWOS)/httpd.imp $(DAV)/main/dav.imp $(STDMOD)/cache/mod_cache.imp $(STDMOD)/proxy/mod_proxy.imp @@ -67,23 +77,24 @@ @echo Creating $@ $(call COPY,$<,$@) -$(PCRE)/%.h:
httpd-trunk/modules/mod_remoteip.c & C89?...
G/M, In function: static const char *remoteip_enable_proxy_protocol(cmd_parms *cmd, void *config, my 'compiler' reports line 389 mod_remoteip.c: remoteip_addr_info **rem_list[len_list]; > ^ "not a valid 'const' expression" even tho 'len_list is defined in the previous line. _Playing_ a bit I got the following change to build: +#define DEF_LEN_LIST 2 +int list_len = DEF_LEN_LIST; +remoteip_addr_info **rem_list[DEF_LEN_LIST]; presumably because the preprocessor gets first look at the code. On the other hand, it might be a compiler bug. Lastly, having got the compiler happy, the Linker says I need some Winsock vars, so added the following to the NWGNUremoteip file. Index: modules/metadata/NWGNUremoteip === --- modules/metadata/NWGNUremoteip (revision 1779997) +++ modules/metadata/NWGNUremoteip (working copy) @@ -182,6 +182,12 @@ libc \ $(EOLIST) +# Include the Winsock libraries if Winsock is being used +ifndef USE_STDSOCKETS +FILES_nlm_modules += ws2_32 \ + $(EOLIST) +endif + # # If the nlm has a msg file, put it's path here # @@ -206,6 +212,15 @@ @libc.imp \ $(EOLIST) +# Include the Winsock imports if Winsock is being used +ifndef USE_STDSOCKETS +FILES_nlm_Ximports += \ + @ws2nlm.imp \ + WSAStartupRTags \ + WSACleanupRTag \ + $(EOLIST) +endif + # # Any symbols exported to here # If anyone falls for this I can make a patch of the changes if needed. Other than the above, all of trunk that NetWare presently builds compiles/links without issue. Norm
Re: httpd-2.2.x and C89... ;-(
G/A and apologies for the delay...I'm not on the net 24/7... Yes, a 'clean' and 2.2.x build goes to completion without issue. Norm On 8/01/2017 12:29 AM, Yann Ylavic wrote: On Sat, Jan 7, 2017 at 1:35 AM, William A Rowe Jr <wr...@rowe-clan.net> wrote: Great catch, thanks Norm. That too is part of the r1753592 backport proposal, hoping someone is willing to look at these proposals. Now backported to 2.2.x (r175), along with other accepted "SNI" patches. Norm, does it work for you? On Sat, Jan 7, 2017 at 12:20 PM, Jan Ehrhardt <php...@ehrhardt.nl> wrote: NormW in gmane.comp.apache.devel (Sat, 7 Jan 2017 11:31:32 +1100): D:\Projects\svn\httpd-2.2.x>svn diff Index: modules/proxy/mod_proxy.c === --- modules/proxy/mod_proxy.c (revision 1777591) +++ modules/proxy/mod_proxy.c (working copy) @@ -1088,9 +1088,9 @@ * backend itself but by the proxy e.g. a bad gateway) in order to give * ap_proxy_post_request a chance to act correctly on the status code. */ +int post_status = proxy_run_post_request(worker, balancer, r, conf); saved_status = r->status; r->status = access_status; -int post_status = proxy_run_post_request(worker, balancer, r, conf); /* * Only restore r->status if it has not been changed by * ap_proxy_post_request as we assume that this change was intentional. r (or rather r->status) is changed in between the added line and the deleted line, so it seems better to do it like this: Right, though r175 combined another change which avoided the warning altogether. Thanks anyway Norm/Jan for testing/review. Regards, Yann.
Re: Tagging update for 2.2.32
G/A I'm building the 2.2.x svn source tree, not a tag... Norm On 7/01/2017 1:09 PM, NormW wrote: G/A As of 2 mins ago... Building D:/Projects/svn/httpd-2.2.x/modules/proxy Calling NWGNUproxy CC mod_proxy.c ### mwccnlm Compiler: #File: mod_proxy.c # #1093: int post_status = proxy_run_post_request(worker, balancer, r, conf); # Error: ^^^ # expression syntax error # Too many errors printed, aborting program Norm On 7/01/2017 12:36 PM, Victor J. Orlikowski wrote: On Fri, Jan 06, 2017, at 08:13 PM, Victor J. Orlikowski wrote: Sigh. Missed the SHOWSTOPPER from the C89 thread. Wait a sec; re-reviewing that patch...Norm's issue should be addressed with the backport of r1753592. Norm - could you re-try that compile with Yann's backport? Best, Victor
Re: Tagging update for 2.2.32
G/A As of 2 mins ago... Building D:/Projects/svn/httpd-2.2.x/modules/proxy Calling NWGNUproxy CC mod_proxy.c ### mwccnlm Compiler: #File: mod_proxy.c # #1093: int post_status = proxy_run_post_request(worker, balancer, r, conf); # Error: ^^^ # expression syntax error # Too many errors printed, aborting program Norm On 7/01/2017 12:36 PM, Victor J. Orlikowski wrote: On Fri, Jan 06, 2017, at 08:13 PM, Victor J. Orlikowski wrote: Sigh. Missed the SHOWSTOPPER from the C89 thread. Wait a sec; re-reviewing that patch...Norm's issue should be addressed with the backport of r1753592. Norm - could you re-try that compile with Yann's backport? Best, Victor
httpd-2.2.x and C89... ;-(
G/M Did a test build of the 2.2.x tree and all builds nicely with exception of the following; if release is 'in progress' I leave to others to decide what to do about it. D:\Projects\svn\httpd-2.2.x>svn diff Index: modules/proxy/mod_proxy.c === --- modules/proxy/mod_proxy.c (revision 1777591) +++ modules/proxy/mod_proxy.c (working copy) @@ -1088,9 +1088,9 @@ * backend itself but by the proxy e.g. a bad gateway) in order to give * ap_proxy_post_request a chance to act correctly on the status code. */ +int post_status = proxy_run_post_request(worker, balancer, r, conf); saved_status = r->status; r->status = access_status; -int post_status = proxy_run_post_request(worker, balancer, r, conf); /* * Only restore r->status if it has not been changed by * ap_proxy_post_request as we assume that this change was intentional. Norm
Re: svn commit: r1774609 - /httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp
G/A... On 17/12/2016 5:38 AM, William A Rowe Jr wrote: Erm... did you miss the same edit to mod_socache_memcache.mak? (Just catching up on the flurry of traffic, so this is speculation.) Further speculation, are we solid for NetWare now? Any word, Norm? Have clean build and 'install' on 2.4.x tree using: APR/APR-UTIL 1.5 trees PCRE 8.39 NGHTTP2 1.17.0 SERF 1.3.9 LUA 5.2.4 EXPAT 2.2.0 HTH Norm [wrowe@hub cache]$ grep "/generators" * mod_cache_socache.dsp:# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fd"Release\mod_cache_socache_src" /FD /c mod_cache_socache.dsp:# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fd"Debug\mod_cache_socache_src" /FD /c mod_cache_socache.mak:CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_cache_socache_src" /FD /c mod_cache_socache.mak:CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_cache_socache_src" /FD /EHsc /c mod_socache_dbm.dsp:# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_socache_dbm_src" /FD /c mod_socache_dbm.dsp:# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_socache_dbm_src" /FD /c mod_socache_dbm.mak:CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_dbm_src" /FD /c mod_socache_dbm.mak:CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_dbm_src" /FD /EHsc /c mod_socache_memcache.dsp:# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_socache_memcache_src" /FD /c mod_socache_memcache.dsp:# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_socache_memcache_src" /FD /c mod_socache_shmcb.dsp:# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_socache_shmcb_src" /FD /c mod_socache_shmcb.dsp:# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_socache_shmcb_src" /FD /c mod_socache_shmcb.mak:CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_shmcb_src" /FD /c mod_socache_shmcb.mak:CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_shmcb_src" /FD /EHsc /c NWGNUcach_socache: $(STDMOD)/generators \ NWGNUsocachdbm: $(STDMOD)/generators \ NWGNUsocachmem: $(STDMOD)/generators \ NWGNUsocachshmcb: $(STDMOD)/generators \ On Fri, Dec 16, 2016 at 9:00 AM,wrote: Author: rjung Date: Fri Dec 16 15:00:06 2016 New Revision: 1774609 URL: http://svn.apache.org/viewvc?rev=1774609=rev Log: Add ../generators to include path for Windows build of mod_socache_memcache. It now needs mod_status.h. Untested but exactly analogous to what works for mod_socache_shmcb and others. Modified: httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp Modified: httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/cache /mod_socache_memcache.dsp?rev=1774609=1774608=1774609=diff == --- httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp (original) +++ httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp Fri Dec 16 15:00:06 2016 @@
Re: Mod_brotli, C89 & NetWare - finale
G?M There is a downside to fibbing! :-) CC D:\Projects\srcs\brotli-master/enc/static_dict.c ### mwccnlm Compiler: # In: D:\Projects\srcs\brotli-master\include\brotli\types.h #From: D:\Projects\srcs\brotli-master\enc\static_dict.c # - # 18: typedef __int8 int8_t; # Error:^^ # ';' expected But having got a new bone I'll dig further. Norm On 29/11/2016 3:53 AM, Gregg Smith wrote: Hi Norm, Actually, log2 is not needed. It's cmake that forces it on us. Look at fast_log.h line 131 #if (defined(_MSC_VER) && _MSC_VER <= 1700) || \ (defined(__ANDROID_API__) && __ANDROID_API__ < 18) /* Visual Studio 2012 and Android API levels < 18 do not have the log2() * function defined, so we use log() and a multiplication instead. */ return log((double)v) * LOG_2_INV; #else return log2((double)v); #endif You may define _MSC_VER=1 at the command line when compiling and it should work for you. In CMakeList.txt I just remove the check for log2(), lines 96-113, before using. Cheers, G On 11/27/2016 3:38 AM, NormW wrote: G/E, After some head scratching/bashing and research: Brotli.lib has several places that use log2(), which was not defined in C89 (AFAIK), although the function could be kludged easily enough as it uses C89 functions in its own routine. Although NetWare was derived using a C89 compiler, its math.h shows signs of its early development, in that a number of MATHs macro's resolve not to values but to LibC functions, which means they can't be used in 'const' assignments... hence const = INFINITY fails to compile. (It was on the ToDo list it seems but the ship sank before it made the top of the list.) Tweaking math.h while possible, doesn't make for much sense, but mod_brotli does at least compile without issue; well almost. The only C89 issue (AFAICT) is the following patch, which should allow any other C89 (with a more up to date OS ;-( ) to compile it, which NetWare's CW can do for the likes of Apache2, Lua, Zlib, NGHTTP2, OSSL and a bunch of others. Index: modules/filters/mod_brotli.c === --- modules/filters/mod_brotli.c(revision 1771539) +++ modules/filters/mod_brotli.c(working copy) @@ -240,7 +240,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_transient_create(output, output_len, +b = apr_bucket_transient_create((const char *)output, output_len, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); @@ -289,7 +289,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_heap_create(output, output_len, NULL, +b = apr_bucket_heap_create((const char *)output, output_len, NULL, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); } Norm
Re: Mod_brotli, C89 & NetWare - finale
G/M (mid-morning here) Thanks Evgeny! HIH Norm On 29/11/2016 5:42 AM, Evgeny Kotkov wrote: NormW <no...@gknw.net> writes: The only C89 issue (AFAICT) is the following patch, which should allow any other C89 (with a more up to date OS ;-( ) to compile it, which NetWare's CW can do for the likes of Apache2, Lua, Zlib, NGHTTP2, OSSL and a bunch of others. Thanks, I committed the patch in https://svn.apache.org/r1771791 Regards, Evgeny Kotkov
Re: Mod_brotli, C89 & NetWare - finale
;-( So much time spent on making a 'workable' log2... Thanks Gregg for the heads up. When I tried a 'fudge' to get past the previously mentioned compiler errors, the linker reported a number of files that required log2, but never looked further into it, assuming it was a requirement. Being a newbie at this stuff the fruit salad in the code below in old days (which I mostly recall) would have had: :-) #ifdef HAVE_LOG2 return log2((double)v); #else return log((double)v) * LOG_2_INV; #endif Can this be done as a macro in a header somewhere and just use LOG2(v) in the code? Thanks again for the info and the much simpler replacement - will have to fire up the CW again! But I doubt there will be an 'encore'. :-) Norm On 29/11/2016 3:53 AM, Gregg Smith wrote: Hi Norm, Actually, log2 is not needed. It's cmake that forces it on us. Look at fast_log.h line 131 #if (defined(_MSC_VER) && _MSC_VER <= 1700) || \ (defined(__ANDROID_API__) && __ANDROID_API__ < 18) /* Visual Studio 2012 and Android API levels < 18 do not have the log2() * function defined, so we use log() and a multiplication instead. */ return log((double)v) * LOG_2_INV; #else return log2((double)v); #endif You may define _MSC_VER=1 at the command line when compiling and it should work for you. In CMakeList.txt I just remove the check for log2(), lines 96-113, before using. Cheers, G On 11/27/2016 3:38 AM, NormW wrote: G/E, After some head scratching/bashing and research: Brotli.lib has several places that use log2(), which was not defined in C89 (AFAIK), although the function could be kludged easily enough as it uses C89 functions in its own routine. Although NetWare was derived using a C89 compiler, its math.h shows signs of its early development, in that a number of MATHs macro's resolve not to values but to LibC functions, which means they can't be used in 'const' assignments... hence const = INFINITY fails to compile. (It was on the ToDo list it seems but the ship sank before it made the top of the list.) Tweaking math.h while possible, doesn't make for much sense, but mod_brotli does at least compile without issue; well almost. The only C89 issue (AFAICT) is the following patch, which should allow any other C89 (with a more up to date OS ;-( ) to compile it, which NetWare's CW can do for the likes of Apache2, Lua, Zlib, NGHTTP2, OSSL and a bunch of others. Index: modules/filters/mod_brotli.c === --- modules/filters/mod_brotli.c(revision 1771539) +++ modules/filters/mod_brotli.c(working copy) @@ -240,7 +240,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_transient_create(output, output_len, +b = apr_bucket_transient_create((const char *)output, output_len, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); @@ -289,7 +289,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_heap_create(output, output_len, NULL, +b = apr_bucket_heap_create((const char *)output, output_len, NULL, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); } Norm
Mod_brotli, C89 & NetWare - finale
G/E, After some head scratching/bashing and research: Brotli.lib has several places that use log2(), which was not defined in C89 (AFAIK), although the function could be kludged easily enough as it uses C89 functions in its own routine. Although NetWare was derived using a C89 compiler, its math.h shows signs of its early development, in that a number of MATHs macro's resolve not to values but to LibC functions, which means they can't be used in 'const' assignments... hence const = INFINITY fails to compile. (It was on the ToDo list it seems but the ship sank before it made the top of the list.) Tweaking math.h while possible, doesn't make for much sense, but mod_brotli does at least compile without issue; well almost. The only C89 issue (AFAICT) is the following patch, which should allow any other C89 (with a more up to date OS ;-( ) to compile it, which NetWare's CW can do for the likes of Apache2, Lua, Zlib, NGHTTP2, OSSL and a bunch of others. Index: modules/filters/mod_brotli.c === --- modules/filters/mod_brotli.c(revision 1771539) +++ modules/filters/mod_brotli.c(working copy) @@ -240,7 +240,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_transient_create(output, output_len, +b = apr_bucket_transient_create((const char *)output, output_len, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); @@ -289,7 +289,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_heap_create(output, output_len, NULL, +b = apr_bucket_heap_create((const char *)output, output_len, NULL, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); } Norm Index: modules/filters/mod_brotli.c === --- modules/filters/mod_brotli.c (revision 1771539) +++ modules/filters/mod_brotli.c (working copy) @@ -240,7 +240,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_transient_create(output, output_len, +b = apr_bucket_transient_create((const char *)output, output_len, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); @@ -289,7 +289,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_heap_create(output, output_len, NULL, +b = apr_bucket_heap_create((const char *)output, output_len, NULL, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); }
Re: apr-util 1.6 Netware got apr_redis.c and CW liked 99.9%
G/M, Thx x 2! Norm On 22/11/2016 11:45 PM, Jim Jagielski wrote: Thx again! Added in both APU-1.6 and APR-TRUNK On Nov 22, 2016, at 4:53 AM, NormW <no...@gknw.net> wrote: G/E (Hope this doesn't ruin it) Index: redis/apr_redis.c === --- redis/apr_redis.c (revision 1770630) +++ redis/apr_redis.c (working copy) @@ -859,9 +859,9 @@ { char *length; char *last; +apr_status_t rv; apr_size_t len = 0; *new_length = 0; -apr_status_t rv; length = apr_strtok(conn->buffer + 1, " ", ); if (length) { No idea if this is a C89 quirk or a CW quirk... if the latter please ignore! Norm
apr-util 1.6 Netware got apr_redis.c and CW liked 99.9%
G/E (Hope this doesn't ruin it) Index: redis/apr_redis.c === --- redis/apr_redis.c (revision 1770630) +++ redis/apr_redis.c (working copy) @@ -859,9 +859,9 @@ { char *length; char *last; +apr_status_t rv; apr_size_t len = 0; *new_length = 0; -apr_status_t rv; length = apr_strtok(conn->buffer + 1, " ", ); if (length) { No idea if this is a C89 quirk or a CW quirk... if the latter please ignore! Norm Index: redis/apr_redis.c === --- redis/apr_redis.c (revision 1770630) +++ redis/apr_redis.c (working copy) @@ -859,9 +859,9 @@ { char *length; char *last; +apr_status_t rv; apr_size_t len = 0; *new_length = 0; -apr_status_t rv; length = apr_strtok(conn->buffer + 1, " ", ); if (length) {
NWGNUsocachmem needs to find mod_status.h
G/E, See attached patch... Index: modules/cache/NWGNUsocachmem === --- modules/cache/NWGNUsocachmem(revision 1770808) +++ modules/cache/NWGNUsocachmem(working copy) @@ -26,6 +26,7 @@ $(APR)/include \ $(APRUTIL)/include \ $(SRC)/include \ + $(STDMOD)/generators \ $(SERVER)/mpm/netware \ $(NWOS) \ $(EOLIST) Norm Index: modules/cache/NWGNUsocachmem === --- modules/cache/NWGNUsocachmem (revision 1770808) +++ modules/cache/NWGNUsocachmem (working copy) @@ -26,6 +26,7 @@ $(APR)/include \ $(APRUTIL)/include \ $(SRC)/include \ + $(STDMOD)/generators \ $(SERVER)/mpm/netware \ $(NWOS) \ $(EOLIST)
Re: ap-2.4.x and .\proxy - NetWare build
G/M, Thx! 2.4 builds nicely again. Norm On 28/10/2016 9:56 AM, Yann Ylavic wrote: On Wed, Oct 26, 2016 at 2:31 AM, NormW <no...@gknw.net> wrote: G/M, Revision r1728804 added NWGNUhcheck to httpd-trunk and added an entry into NWGNUmakefile in the same directory - r1744951 (amongst other things) added the entry into the 2.4 .\proxy\NWGNUmakefile but did not copy the NWGNUhcheck file itself (added to trunk as noted above) to 2.4. Merged to 2.4.x in r1766906. Regards, Yann.
ap-2.4.x and .\proxy - NetWare build
G/M, Revision r1728804 added NWGNUhcheck to httpd-trunk and added an entry into NWGNUmakefile in the same directory - r1744951 (amongst other things) added the entry into the 2.4 .\proxy\NWGNUmakefile but did not copy the NWGNUhcheck file itself (added to trunk as noted above) to 2.4. FYI If a dir is to be built, it MUST have a NWGNUmakefile. If there is only one item to built in the dir, the NWGNUmakefile can contain the build process for that item. If there are multiple items to build in the dir, the NWGNUmakefile contains a list of the NLM's to be built, where the build system prepends 'NWGNU' to the front of the NLM name to get the name of actual Makefile it needs to run to build the item. E.g The NLM list in .\proxy\NWGNUmakefile includes proxy.nlm but the build system looks to find a NWGNUproxy file to build it; happily no onr I kmow designed this, and many requests to simplify it fell on deaf ears. Norm
httpd-2.4.x proxy exports needed for NetWare
G/M, The following diff (also herewith) is needed for extra mod_proxy exports for a clean build of 2.4 for NetWare: Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy(revision 1766453) +++ modules/proxy/NWGNUproxy(working copy) @@ -256,6 +256,7 @@ @echo $(DL)# Exports of mod_proxy$(DL)> $@ @echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@ @echo $(DL) proxy_module,$(DL)>> $@ + @echo $(DL) proxy_hcmethods,$(DL)>> $@ @echo $(DL) proxy_hook_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_post_request,$(DL)>> $@ @@ -277,6 +278,7 @@ @echo $(DL) ap_proxy_c2hex,$(DL)>> $@ @echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@ @echo $(DL) ap_proxy_canonenc,$(DL)>> $@ + @echo $(DL) ap_proxy_check_connection,$(DL)>> $@ @echo $(DL) ap_proxy_checkproxyblock,$(DL)>> $@ @echo $(DL) ap_proxy_checkproxyblock2,$(DL)>> $@ @echo $(DL) ap_proxy_conn_is_https,$(DL)>> $@ @@ -312,6 +314,7 @@ @echo $(DL) ap_proxy_set_wstatus,$(DL)>> $@ @echo $(DL) ap_proxy_share_balancer,$(DL)>> $@ @echo $(DL) ap_proxy_share_worker,$(DL)>> $@ + @echo $(DL) ap_proxy_show_hcmethod,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_connection_cleanup,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_disable,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_enable,$(DL)>> $@ Norm Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy (revision 1766453) +++ modules/proxy/NWGNUproxy (working copy) @@ -256,6 +256,7 @@ @echo $(DL)# Exports of mod_proxy$(DL)> $@ @echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@ @echo $(DL) proxy_module,$(DL)>> $@ + @echo $(DL) proxy_hcmethods,$(DL)>> $@ @echo $(DL) proxy_hook_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_post_request,$(DL)>> $@ @@ -277,6 +278,7 @@ @echo $(DL) ap_proxy_c2hex,$(DL)>> $@ @echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@ @echo $(DL) ap_proxy_canonenc,$(DL)>> $@ + @echo $(DL) ap_proxy_check_connection,$(DL)>> $@ @echo $(DL) ap_proxy_checkproxyblock,$(DL)>> $@ @echo $(DL) ap_proxy_checkproxyblock2,$(DL)>> $@ @echo $(DL) ap_proxy_conn_is_https,$(DL)>> $@ @@ -312,6 +314,7 @@ @echo $(DL) ap_proxy_set_wstatus,$(DL)>> $@ @echo $(DL) ap_proxy_share_balancer,$(DL)>> $@ @echo $(DL) ap_proxy_share_worker,$(DL)>> $@ + @echo $(DL) ap_proxy_show_hcmethod,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_connection_cleanup,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_disable,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_enable,$(DL)>> $@
mod_brotli.c, NetWare AND C89?
G/E, At least have 'solved' one the compiler complaints; Calling NWGNUmod_brotli GEN obj_release/mod_brotli_cc.opt CC mod_brotli.c ### mwccnlm Compiler: #File: mod_brotli.c # - # 244: ctx->bb->bucket_alloc); # Error: ^ # illegal implicit conversion from 'const unsigned char *' to # 'const char *' Index: modules/filters/mod_brotli.c === --- modules/filters/mod_brotli.c(revision 1765782) +++ modules/filters/mod_brotli.c(working copy) @@ -240,7 +240,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_transient_create(output, output_len, +b = apr_bucket_transient_create((const char *)output, output_len, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); @@ -289,7 +289,7 @@ output = BrotliEncoderTakeOutput(ctx->state, _len); ctx->total_out += output_len; -b = apr_bucket_heap_create(output, output_len, NULL, +b = apr_bucket_heap_create((const char *)output, output_len, NULL, ctx->bb->bucket_alloc); APR_BRIGADE_INSERT_TAIL(ctx->bb, b); } The var 'output' is created as 'const uint8_t *' while the apr functions are expecting 'const char *'. Applying the cast in two places is accepted and mod_brotli.c compiles without issue'. The other 'problem' is a bit more devious (== not solved yet): CC D:\Projects\srcs\brotli-master/enc/backward_references.c ### mwccnlm Compiler: #File: D:\Projects\srcs\brotli-master\enc\backward_references.c # - # 30: static const float kInfinity = INFINITY; # Error:^ # illegal constant expression The assignment LHS has no issue as, if I force line 32 to run, then backward_references.c compiles; the issue appears to be in the Novell headers itself. Still poking on that front. Norm
Re: httpd-trunk - mod_proxy_http2 needs an export
G/M Thanks for the thanks! Norm On 18/10/2016 11:06 PM, Stefan Eissing wrote: Added in trunk and 2.4.x branch. Thanks! Am 18.10.2016 um 14:02 schrieb NormW <no...@gknw.net>: G\E If anyone is looking after NetWare issues: Index: modules/http2/NWGNUmod_http2 == --- modules/http2/NWGNUmod_http2(revision 1765415) +++ modules/http2/NWGNUmod_http2(working copy) @@ -393,6 +393,7 @@ @echo $(DL) nghttp2_session_want_write,$(DL) >> $@ @echo $(DL) nghttp2_strerror,$(DL) >> $@ @echo $(DL) nghttp2_submit_goaway,$(DL) >> $@ + @echo $(DL) nghttp2_submit_ping,$(DL) >> $@ @echo $(DL) nghttp2_submit_request,$(DL) >> $@ @echo $(DL) nghttp2_submit_rst_stream,$(DL) >> $@ @echo $(DL) nghttp2_submit_settings,$(DL) >> $@ norm
httpd-trunk - mod_proxy_http2 needs an export
G\E If anyone is looking after NetWare issues: Index: modules/http2/NWGNUmod_http2 == --- modules/http2/NWGNUmod_http2(revision 1765415) +++ modules/http2/NWGNUmod_http2(working copy) @@ -393,6 +393,7 @@ @echo $(DL) nghttp2_session_want_write,$(DL) >> $@ @echo $(DL) nghttp2_strerror,$(DL) >> $@ @echo $(DL) nghttp2_submit_goaway,$(DL) >> $@ + @echo $(DL) nghttp2_submit_ping,$(DL) >> $@ @echo $(DL) nghttp2_submit_request,$(DL) >> $@ @echo $(DL) nghttp2_submit_rst_stream,$(DL) >> $@ @echo $(DL) nghttp2_submit_settings,$(DL) >> $@ norm
Apache 2.4 tree build - two NetWare fixes
G/E, Attached a patch to add two more symbols for mod_proxy export (needed by proxy_bancer) and a NWGNUproxyhcheck to create proxyhcheck.nlm, referenced in the NWGNUmakefile but not previously supplied. Norm Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy (revision 1764878) +++ modules/proxy/NWGNUproxy (working copy) @@ -256,6 +256,7 @@ @echo $(DL)# Exports of mod_proxy$(DL)> $@ @echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@ @echo $(DL) proxy_module,$(DL)>> $@ + @echo $(DL) proxy_hcmethods,$(DL)>> $@ @echo $(DL) proxy_hook_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_post_request,$(DL)>> $@ @@ -312,6 +313,7 @@ @echo $(DL) ap_proxy_set_wstatus,$(DL)>> $@ @echo $(DL) ap_proxy_share_balancer,$(DL)>> $@ @echo $(DL) ap_proxy_share_worker,$(DL)>> $@ + @echo $(DL) ap_proxy_show_hcmethod,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_connection_cleanup,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_disable,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_enable,$(DL)>> $@ # # Make sure all needed macro's are defined # # # Get the 'head' of the build environment if necessary. This includes default # targets and paths to tools # ifndef EnvironmentDefined include $(AP_WORK)/build/NWGNUhead.inc endif # # These directories will be at the beginning of the include list, followed by # INCDIRS # XINCDIRS+= \ $(APR)/include \ $(APRUTIL)/include \ $(AP_WORK)/include \ $(AP_WORK)/modules/core \ $(AP_WORK)/modules/http \ $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ $(EOLIST) # # These defines will come after DEFINES # XDEFINES+= \ $(EOLIST) # # These flags will be added to the link.opt file # XLFLAGS += \ $(EOLIST) # # These values will be appended to the correct variables based on the value of # RELEASE # ifeq "$(RELEASE)" "debug" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "noopt" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "release" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif # # These are used by the link target if an NLM is being generated # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # NLM_NAME= proxyhcheck # # This is used by the link '-desc ' directive. # If left blank, NLM_NAME will be used. # NLM_DESCRIPTION = Apache $(VERSION_STR) Proxy Health Check Sub-Module # # This is used by the '-threadname' directive. If left blank, # NLM_NAME Thread will be used. # NLM_THREAD_NAME = Proxy HCheck Module # # If this is specified, it will override VERSION value in # $(AP_WORK)/build/NWGNUenvironment.inc # NLM_VERSION = # # If this is specified, it will override the default of 64K # NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # NLM_EXIT_SYM= # # If this is specified it will be used by the link '-check' directive # NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # XDCDATA = # # If there is an NLM target, put it here # TARGET_nlm = \ $(OBJDIR)/proxyhcheck.nlm \ $(EOLIST) # # If there is an LIB target, put it here # TARGET_lib = \ $(EOLIST) # # These are the OBJ files needed to create the NLM target above. # Paths must all use the '/' character # FILES_nlm_objs = \ $(OBJDIR)/mod_proxy_hcheck.o \ $(OBJDIR)/libprews.o \ $(EOLIST) # # These are the LIB files needed to create the NLM target above. # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ $(PRELUDE) \ $(EOLIST) # # These are the modules that the above NLM target depends on to load. # These will be added as a module command in the link.opt file. #
Re: Loads of dup symbols in h2_util.c and h2_proxy_util.c
G/E I reverted my local .\http2 for httpd-trunk and sync'd with svn source, and now builds that dir without issue for NetWare also. Thx, Norm On 12/10/2016 1:38 AM, Jim Jagielski wrote: Bringo! https://www.youtube.com/watch?v=4MpyHBoiTwk On Oct 11, 2016, at 10:35 AM, Stefan Eissingwrote: Fixed (hopefully ;-) -Stefan Am 11.10.2016 um 15:59 schrieb Jim Jagielski : Looks like 2 were missed :) duplicate symbol _h2_proxy_res_ignore_header in: modules/http2/.libs/libmod_proxy_http2.a(h2_proxy_util.o) modules/http2/.libs/libmod_http2.a(h2_util.o) duplicate symbol _h2_util_ngheader_make_req in: modules/http2/.libs/libmod_proxy_http2.a(h2_proxy_util.o) modules/http2/.libs/libmod_http2.a(h2_util.o) ld: 2 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) Thx!! On Oct 11, 2016, at 9:42 AM, Stefan Eissing wrote: Changed. If you could verify that current trunk + 2.4.x do not have this issue any more, that'd be nice. -Stefan Am 11.10.2016 um 15:13 schrieb Jim Jagielski : ... and on trunk too it seems... On Oct 11, 2016, at 9:05 AM, Jim Jagielski wrote: Forgot to mention: This is on HEAD httpd-2.4 On Oct 11, 2016, at 8:50 AM, Jim Jagielski wrote: There are a bunch of dup symbols popping up during link; these symbols exist in both h2_util.c and h2_proxy_util.c. Note: this is AFTER ensuring a 'make extraclean'...
NetWare gets a look at latest lua (5.3.3)
G/E. The following tweak is needed to compile the latest 5.3.3 lua since it is (nominally) C89 compliant at least: Index: modules/lua/NWGNUmakefile === --- modules/lua/NWGNUmakefile (revision 1762749) +++ modules/lua/NWGNUmakefile (working copy) @@ -49,6 +49,7 @@ -DLUA_COMPAT_5_2 \ -DLUA_COMPAT_5_1 \ -DLUA_COMPAT_MODULE \ + -DLUA_USE_C89 \ $(EOLIST) Norm
C89 (alias NetWare) tries new mod_ on the block.
G/E. Aimed 'our' C89 compiler at mod_brotli as much for interest as anything technical) and get the following using release 0.5.2 of Brotli: Calling NWGNUmod_brotli CC mod_brotli.c ### mwccnlm Compiler: #File: mod_brotli.c # - # 22: #include # Error:^ # the file 'brotli/encode.h' cannot be opened # Too many errors printed, aborting program User break, cancelled... D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:125: recipe for target 'obj_release/mod_brotli.o' failed make[3]: *** [obj_release/mod_brotli.o] Error 2 CC D:\Projects\srcs\brotli-0.5.2/enc/backward_references.c ### mwccnlm Compiler: #File: D:\Projects\srcs\brotli-0.5.2\enc\backward_references.c :> # Too many errors printed, aborting program User break, cancelled... D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:125: recipe for target 'obj_release/backward_references.o' failed make[3]: *** [obj_release/backward_references.o] Error 2 CC D:\Projects\srcs\brotli-0.5.2/enc/bit_cost.c CC D:\Projects\srcs\brotli-0.5.2/dec/bit_reader.c CC D:\Projects\srcs\brotli-0.5.2/enc/block_splitter.c CC D:\Projects\srcs\brotli-0.5.2/enc/brotli_bit_stream.c CC D:\Projects\srcs\brotli-0.5.2/enc/cluster.c CC D:\Projects\srcs\brotli-0.5.2/enc/compress_fragment.c CC D:\Projects\srcs\brotli-0.5.2/enc/compress_fragment_two_pass.c CC D:\Projects\srcs\brotli-0.5.2/dec/decode.c CC D:\Projects\srcs\brotli-0.5.2/common/dictionary.c CC D:\Projects\srcs\brotli-0.5.2/enc/encode.c CC D:\Projects\srcs\brotli-0.5.2/enc/entropy_encode.c CC D:\Projects\srcs\brotli-0.5.2/enc/histogram.c CC D:\Projects\srcs\brotli-0.5.2/dec/huffman.c CC D:\Projects\srcs\brotli-0.5.2/enc/literal_cost.c CC D:\Projects\srcs\brotli-0.5.2/enc/memory.c CC D:\Projects\srcs\brotli-0.5.2/enc/metablock.c CC D:\Projects\srcs\brotli-0.5.2/dec/state.c CC D:\Projects\srcs\brotli-0.5.2/enc/static_dict.c CC D:\Projects\srcs\brotli-0.5.2/enc/utf8_util.c make[3]: Target 'default' not remade because of errors. Unclear if the ggit source has a dir or this reference is to the brotli source as a whole). Changing this to and adding a -I for the brotli source top gets: Calling NWGNUmod_brotli GEN obj_release/mod_brotli_cc.opt CC mod_brotli.c ### mwccnlm Compiler: #File: mod_brotli.c # - # 240: output = BrotliEncoderTakeOutput(ctx->state, _len); # Error: ^ # illegal implicit conversion from 'int' to # 'const unsigned char *' Which I assume is either a C89-ism or CW-ism.. The # # 30: static const float kInfinity = INFINITY; # Error:^ # illegal constant expression seems more like a C89-ism to me. The build script and small tweak to use it follow. Norm NWGNUmod_brotli: # # Make sure all needed macro's are defined # # # Get the 'head' of the build environment if necessary. This includes default # targets and paths to tools # ifndef EnvironmentDefined include $(AP_WORK)/build/NWGNUhead.inc endif # # These directories will be at the beginning of the include list, followed by # INCDIRS # XINCDIRS+= \ $(APR)/include \ $(APRUTIL)/include \ $(SRC)/include \ $(NWOS) \ $(BROTLISRC)/common \ $(BROTLISRC)/dec \ $(BROTLISRC)/enc \ $(BROTLISRC) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ $(EOLIST) # # These defines will come after DEFINES # XDEFINES+= \ $(EOLIST) # # These flags will be added to the link.opt file # XLFLAGS += \ $(EOLIST) # # These values will be appended to the correct variables based on the value of # RELEASE # ifeq "$(RELEASE)" "debug" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "noopt" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "release" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif # # These are used by the link target if an NLM is being generated # This is used by the link 'name' directive to name the nlm. If left blank #
Re: NetWare testing httpd-trunk with apr,apr-util 1.6
On 18/09/2016 8:52 AM, Yann Ylavic wrote: On Sat, Sep 17, 2016 at 1:30 PM, NormW <no...@gknw.net> wrote: Hi, Having little to watch on TV, have played about with httpd-trunk and apr-1.6, to see where the hiccups are hiding... What follows are the issues found, and in most cases, fairly simple solutions. Thanks Norm, applied (mostly, see below). Thankyou for taking the time to review; I will omit any commited in the following: Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2(revision 1760988) +++ modules/http2/NWGNUmod_http2(working copy) @@ -369,7 +369,7 @@ @echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@ @echo $(DL) h2_headers_add_h1,$(DL) >> $@ @echo $(DL) h2_req_create,$(DL) >> $@ - @echo $(DL) h2_req_createn,$(DL) >> $@ +# @echo $(DL) h2_req_createn,$(DL) >> $@ @echo $(DL) h2_util_camel_case_header,$(DL) >> $@ @echo $(DL) h2_util_frame_print,$(DL) >> $@ @echo $(DL) h2_util_ngheader_make_req,$(DL) >> $@ These are fairly obvious but subject to what vintage compiler you prefer and what should be done about symbols that move about... For ease of review I've just commented out the offending symbol. The h2_req_createn removal/move seems disputed (not sure why since this is a "private" function, even though its shared..), so I didn't apply this one... Stefan, something to be done about this? Agree a procedure needs to agreed when symbols need to move; what ever the resolution, mod_http2 can't export something no longer there. Over in APR-1.6... D:\Projects\svn\apr-1.6.x>svn diff Index: build/NWGNUmakefile === --- build/NWGNUmakefile (revision 1760898) +++ build/NWGNUmakefile (working copy) @@ -22,7 +22,7 @@ $(APU)/include/apr_ldap.h \ $(APU)/include/private/apu_config.h \ $(APU)/include/private/apu_select_dbm.h \ - $(APUXML)/expat/lib/expat_config.h \ + $(APUXML)/expat_config.h \ $(APR)/include/private/apr_escape_test_char.h \ $(EOLIST) First commited in http://svn.apache.org/r1761283, but finally reverted (r1761292), trunk's xml/NWGNUmakefile seems to reference $(EXPATSRC)/lib for expat_config.h. So I'm not sure here, do we need a change in trunk too? I presume here you refer to apr-trunk; never tried but if it builds aprxml.lib then it seems a better alternative to apr-util-1.6 as it creates the expat_config.h from the makefile rather than use an external .hnw. which would benefit apr-util-1.6. The .\xml structure in apr-util-1.5 is different to trunk and 1.6 so a common make file for all three trees is likely not possible. Index: locks/netware/thread_cond.c === --- locks/netware/thread_cond.c (revision 1760898) +++ locks/netware/thread_cond.c (working copy) @@ -73,7 +73,7 @@ rc = NXCondWait(cond->cond, mutex->mutex); } else { -timeout = timeout * 1000 / XGetSystemTick(); +timeout = timeout * 1000 / NXGetSystemTick(); rc = NXCondTimedWait(cond->cond, mutex->mutex, timeout); if (rc == NX_ETIMEDOUT) { return APR_TIMEUP; Applied in http://svn.apache.org/r1761279 (trunk had the same issue), and backported to 1.6.x (r1761280). It also belongs apr-1.5 AFAICT. The '/N seems to confuse the compiler and drops the 'N', giving a missing symbol XGetSystemTick(). Mostly these are typo's in a non-released package so don't count as a critique; the major issue comes with .\include\apr_proc_mutex.h: Hard to propagate changes to every supported platforms w/o being able to (at least) compile check on all of them, sorry about the locks/netware ones (my bad)... Did/Can you try "make check" (or alike) on Netware regarding these APR changes? Not an option that I'm aware of; all I can do at this point is try to build and hope it goes to completion without complaint. APR_DECLARE(apr_status_t) apr_proc_mutex_timedlock(apr_proc_mutex_t *mutex, apr_time_t timeout, int absolute); The NetWare proc_mutex.c requires it defined as: APR_DECLARE(apr_status_t) apr_proc_mutex_timedlock(apr_thread_mutex_t *mutex, apr_time_t timeout, int absolute) I've just temporarily renamed it to see if it would compile and it did; how to solve this I leave to experts. That's the good fix I think, bad copy/paste on my side. OK APR-UTIL-1.6 shows: D:\Projects\svn\apr-util-1.6.x>svn diff Index: include/apu.hnw === --- in
Re: httpd-trunk\modules\filters\mod_crypto
On 8/09/2016 8:31 PM, Graham Leggett wrote: On 08 Sep 2016, at 12:09 PM, NormW <no...@gknw.net> wrote: What versions of apr\apr-util are assumed to be used when compiling httpd-trunk? I get the following error when compiling mod_crypto, but can't find where the offending symbol is typedef'd. Presently using apr-1.5 and apr-util-1.5. Use apr-util v1.6 (as yet unreleased). Regards, Graham — Thanks to both respondents! It will be interesting to see how NetWare build 'system' handles apr-trunk; as for apr-util-1.6, will check out the source-tree if available. Thanks. Norm
httpd-trunk\modules\filters\mod_crypto
G/E, Apologies for the static... What versions of apr\apr-util are assumed to be used when compiling httpd-trunk? I get the following error when compiling mod_crypto, but can't find where the offending symbol is typedef'd. Presently using apr-1.5 and apr-util-1.5. #From: mod_crypto.c # - # 74: typedef apr_status_t ap_HOOK_crypto_key_t (request_rec *r, apr_crypto_block_key_type_t * cipher, apr_crypto_block_key_mode_t * # Error: ^^^ # illegal function definition TIA, Norm
http2 symbol moved to proxy...
G/E Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2(revision 1759564) +++ modules/http2/NWGNUmod_http2(working copy) @@ -369,7 +369,6 @@ @echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@ @echo $(DL) h2_headers_add_h1,$(DL) >> $@ @echo $(DL) h2_req_create,$(DL) >> $@ - @echo $(DL) h2_req_createn,$(DL) >> $@ @echo $(DL) h2_util_camel_case_header,$(DL) >> $@ @echo $(DL) h2_util_frame_print,$(DL) >> $@ @echo $(DL) h2_util_ngheader_make_req,$(DL) >> $@ h2_req_createn is no longer part of mod_http2, now in proxy_util.c only. Norm
Re: mod_dav build fails on NetWare with unavailable exports
Pardon my 'oops'. When mod_dav linked with the change below, I (rashly) assumed the fix worked, but after a nights sleep found the symbol export list was, in fact, empty, and an inspection of the .i file showed why - all the DAV_DECLARE() macros had also been removed by the pre-process. Will bumble about in the dark while I work out how this works for httpd.imp. N. On 1/09/2016 3:30 PM, NormW wrote: Looking at mod_dav exporting symbols not in use for NetWare, I've (shamelessly) borrowed the same pre-process method used for httpd.imp, which results in the following diff: Index: build/NWGNUmakefile === --- build/NWGNUmakefile(revision 1758692) +++ build/NWGNUmakefile(working copy) @@ -27,10 +27,14 @@ libs :: chkapr $(NWOS)/chartables.c -$(DAV)/main/dav.imp : make_nw_export.awk $(DAV)/main/mod_dav.h +$(DAV)/main/dav.imp : make_nw_export.awk mod_dav.i @echo $(DL)GEN $@$(DL) $(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@ +mod_dav.i : $(DAV)/main/mod_dav.h cc.opt +@echo $(DL)GEN $@$(DL) +$(CC) $< @cc.opt + $(STDMOD)/cache/mod_cache.imp: make_nw_export.awk $(STDMOD)/cache/mod_cache.h $(STDMOD)/cache/cache_util.h @echo $(DL)GEN $@$(DL) $(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@ @@ -127,6 +131,7 @@ $(call DEL,$(DAV)/main/dav.imp) $(call DEL,$(NWOS)/httpd.imp) $(call DEL,nw_export.i) +$(call DEL,mod_dav.i) $(call DEL,cc.opt) $(call DEL,NWGNUversion.inc) ifneq "$(BUILDTOOL_AS_NLM)" "1" I can't call it my idea, but if anyone knows of a better way around this, would love to see it applied.
mod_dav build fails on NetWare with unavailable exports
Looking at mod_dav exporting symbols not in use for NetWare, I've (shamelessly) borrowed the same pre-process method used for httpd.imp, which results in the following diff: Index: build/NWGNUmakefile === --- build/NWGNUmakefile (revision 1758692) +++ build/NWGNUmakefile (working copy) @@ -27,10 +27,14 @@ libs :: chkapr $(NWOS)/chartables.c -$(DAV)/main/dav.imp : make_nw_export.awk $(DAV)/main/mod_dav.h +$(DAV)/main/dav.imp : make_nw_export.awk mod_dav.i @echo $(DL)GEN $@$(DL) $(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@ +mod_dav.i : $(DAV)/main/mod_dav.h cc.opt + @echo $(DL)GEN $@$(DL) + $(CC) $< @cc.opt + $(STDMOD)/cache/mod_cache.imp: make_nw_export.awk $(STDMOD)/cache/mod_cache.h $(STDMOD)/cache/cache_util.h @echo $(DL)GEN $@$(DL) $(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@ @@ -127,6 +131,7 @@ $(call DEL,$(DAV)/main/dav.imp) $(call DEL,$(NWOS)/httpd.imp) $(call DEL,nw_export.i) + $(call DEL,mod_dav.i) $(call DEL,cc.opt) $(call DEL,NWGNUversion.inc) ifneq "$(BUILDTOOL_AS_NLM)" "1" I can't call it my idea, but if anyone knows of a better way around this, would love to see it applied. Index: build/NWGNUmakefile === --- build/NWGNUmakefile (revision 1758692) +++ build/NWGNUmakefile (working copy) @@ -27,10 +27,14 @@ libs :: chkapr $(NWOS)/chartables.c -$(DAV)/main/dav.imp : make_nw_export.awk $(DAV)/main/mod_dav.h +$(DAV)/main/dav.imp : make_nw_export.awk mod_dav.i @echo $(DL)GEN $@$(DL) $(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@ +mod_dav.i : $(DAV)/main/mod_dav.h cc.opt + @echo $(DL)GEN $@$(DL) + $(CC) $< @cc.opt + $(STDMOD)/cache/mod_cache.imp: make_nw_export.awk $(STDMOD)/cache/mod_cache.h $(STDMOD)/cache/cache_util.h @echo $(DL)GEN $@$(DL) $(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@ @@ -127,6 +131,7 @@ $(call DEL,$(DAV)/main/dav.imp) $(call DEL,$(NWOS)/httpd.imp) $(call DEL,nw_export.i) + $(call DEL,mod_dav.i) $(call DEL,cc.opt) $(call DEL,NWGNUversion.inc) ifneq "$(BUILDTOOL_AS_NLM)" "1"
Re: \http2\proxyh2p NWGNU needs added source
On 31/08/2016 7:14 PM, Stefan Eissing wrote: Hi there! Merged in trunk and 2.4.x branch. -Stefan Am 31.08.2016 um 10:06 schrieb NormW <no...@gknw.net>: Thx! N.
\http2\proxyh2p NWGNU needs added source
Hi again (now begins silence) Index: modules/http2/NWGNUproxyht2 === --- modules/http2/NWGNUproxyht2 (revision 1758527) +++ modules/http2/NWGNUproxyht2 (working copy) @@ -182,6 +182,7 @@ FILES_nlm_objs = \ $(OBJDIR)/mod_proxy_http2.o \ $(OBJDIR)/h2_proxy_session.o \ + $(OBJDIR)/h2_proxy_util.o \ $(EOLIST) # Norm Index: modules/http2/NWGNUproxyht2 === --- modules/http2/NWGNUproxyht2 (revision 1758527) +++ modules/http2/NWGNUproxyht2 (working copy) @@ -182,6 +182,7 @@ FILES_nlm_objs = \ $(OBJDIR)/mod_proxy_http2.o \ $(OBJDIR)/h2_proxy_session.o \ + $(OBJDIR)/h2_proxy_util.o \ $(EOLIST) #
mod_crypto.h.c has an issue over my head
Hi again, Calling NWGNUmod_crypto CC mod_crypto.c ### mwccnlm Compiler: # In: mod_crypto.h #From: mod_crypto.c # - # 74: typedef apr_status_t ap_HOOK_crypto_key_t (request_rec *r, apr_crypto_block_key_type_t * cipher, apr_crypto_block_key_mode_t * # Error: ^^^ # illegal function definition # Too many errors printed, aborting program Any clues appreciated. Norm
Issue with export list for \dav\main....
Hi all. Thanks for the tweak for 'isascii' checking; most of the build issues went away...;-( ...most.) Building D:/Projects/svn/httpd-trunk/modules/dav/main LINK obj_release/mod_dav.nlm ### mwldnlm Linker Error: # Undefined symbol: dav_acl_provider_register in # Export list ### mwldnlm Linker Error: # Undefined symbol: dav_get_acl_providers in # Export list Those two symbols are in dav\mod_dav.h and dav\main\processes.c, and because the awk script doesn't understand #ifdef APR_XML_X2T_PARSED ihat brackets these functions, adds these symbols to mod_dav.imp, which results in the above errors. _IF_ APR_XML_X2T_PARSED happens to be true on NetWare (unknown ATM) adding this define to apr.hnw would be a cheap solution. Norm
An abbreviated background to this build error?
G/E; Building for NetWare after 3+ months elsewhere, an get the following build error: Creating Build Helper gen_test_char.exe ### mwld.exe Linker Error: # Undefined symbol: _isascii in # gen_test_char.obj ### mwcc Driver Error: # linker 'D:\CWCMDL40\mwld.exe' returned with exit code 1 AFAICT NetWare doesn't have the leading '_'. Norm
Extra export for http-trunk http2
G/E.. Another symbol needed ;-( Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2(revision 1743880) +++ modules/http2/NWGNUmod_http2(working copy) @@ -355,6 +355,7 @@ @echo $(DL)GEN $@$(DL) @echo $(DL) (HTTP2)$(DL) > $@ @echo $(DL) http2_module,$(DL) >> $@ + @echo $(DL) h2_casecmpstrn,$(DL) >> $@ @echo $(DL) h2_ihash_add,$(DL) >> $@ @echo $(DL) h2_ihash_clear,$(DL) >> $@ @echo $(DL) h2_ihash_count,$(DL) >> $@ Am moving to another town... Bye for now; if NetWare support goes silent, consider removing support. Every success, Norm Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2 (revision 1743880) +++ modules/http2/NWGNUmod_http2 (working copy) @@ -355,6 +355,7 @@ @echo $(DL)GEN $@$(DL) @echo $(DL) (HTTP2)$(DL) > $@ @echo $(DL) http2_module,$(DL) >> $@ + @echo $(DL) h2_casecmpstrn,$(DL) >> $@ @echo $(DL) h2_ihash_add,$(DL) >> $@ @echo $(DL) h2_ihash_clear,$(DL) >> $@ @echo $(DL) h2_ihash_count,$(DL) >> $@
Re: Recent updates to httpd-trunk
On 27/04/2016 8:56 AM, Yann Ylavic wrote: Thanks, done in r1741112 and r1741115. Regards, Yann. Excellent! All httpd-trunk now builds nicely with NetWare.
Recent updates to httpd-trunk
G/M from a very warm autumn. 1. Could someone please: - set the correct EOL type in svn for .\modules\http2\NWGNUproxyht2, - Patch as per the following to allow builds of \http2 and \ssl D:\Projects\svn\httpd-trunk>svn diff Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2(revision 1741097) +++ modules/http2/NWGNUmod_http2(working copy) @@ -359,7 +359,7 @@ @echo $(DL) h2_ihash_clear,$(DL) >> $@ @echo $(DL) h2_ihash_count,$(DL) >> $@ @echo $(DL) h2_ihash_create,$(DL) >> $@ - @echo $(DL) h2_ihash_is_empty,$(DL) >> $@ + @echo $(DL) h2_ihash_empty,$(DL) >> $@ @echo $(DL) h2_ihash_iter,$(DL) >> $@ @echo $(DL) h2_ihash_remove,$(DL) >> $@ @echo $(DL) h2_iq_add,$(DL) >> $@ Index: modules/http2/NWGNUproxyht2 === --- modules/http2/NWGNUproxyht2 (revision 1741097) +++ modules/http2/NWGNUproxyht2 (working copy) @@ -230,7 +230,8 @@ ap_proxy_canon_netloc \ ap_proxy_canonenc \ ap_proxy_connect_backend \ - ap_proxy_connection_create \ + ap_proxy_connection_create \ + ap_proxy_connection_create_ex \ ap_proxy_cookie_reverse_map \ ap_proxy_determine_connection \ ap_proxy_location_reverse_map \ Index: modules/ssl/NWGNUmakefile === --- modules/ssl/NWGNUmakefile (revision 1741097) +++ modules/ssl/NWGNUmakefile (working copy) @@ -55,6 +55,7 @@ $(SRC)/include \ $(STDMOD)/cache \ $(STDMOD)/generators \ + $(STDMOD)/proxy \ $(SERVER)/mpm/NetWare \ $(NWOS) \ $(EOLIST) The EOL problem with NWGNUproxyht2 caused the symbol to be apparently added twice. - Unable (at this time) to work out the following error: Building D:/Projects/svn/httpd-trunk/modules/proxy Calling NWGNUproxy LINK obj_release/proxy.nlm ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_get_section_post_config in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_section_post_config in # Export list I suspect this is due to an .awk script assumption that these two also exist, but it may also? be a extra source file needed for the build. With \http2 tweaked as noted, builds fine with nghttp2 v1.10.0. Regards Norm
Re: httpd-trunk proxy_http2 NetWare build wants extra sym.
Thx. Trunk and 2.4.x now both build without issue. Norm On 21/03/2016 8:00 PM, Stefan Eissing wrote: Applied in 1735928. Am 17.03.2016 um 22:45 schrieb NormW <no...@gknw.net>: G/M, A recent addition to trunk mod_proxy_http2 needs an additional export from hghttp2 lib, thus: Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2(revision 1735506) +++ modules/http2/NWGNUmod_http2(working copy) @@ -391,6 +391,7 @@ @echo $(DL) nghttp2_session_callbacks_set_send_callback,$(DL) >> $@ @echo $(DL) nghttp2_session_client_new2,$(DL) >> $@ @echo $(DL) nghttp2_session_consume,$(DL) >> $@ + @echo $(DL) nghttp2_session_consume_connection,$(DL) >> $@ @echo $(DL) nghttp2_session_del,$(DL) >> $@ @echo $(DL) nghttp2_session_get_remote_settings,$(DL) >> $@ @echo $(DL) nghttp2_session_get_stream_user_data,$(DL) >> $@ Excuse the noise. Norm
httpd-trunk proxy_http2 NetWare build wants extra sym.
G/M, A recent addition to trunk mod_proxy_http2 needs an additional export from hghttp2 lib, thus: Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2(revision 1735506) +++ modules/http2/NWGNUmod_http2(working copy) @@ -391,6 +391,7 @@ @echo $(DL) nghttp2_session_callbacks_set_send_callback,$(DL) >> $@ @echo $(DL) nghttp2_session_client_new2,$(DL) >> $@ @echo $(DL) nghttp2_session_consume,$(DL) >> $@ + @echo $(DL) nghttp2_session_consume_connection,$(DL) >> $@ @echo $(DL) nghttp2_session_del,$(DL) >> $@ @echo $(DL) nghttp2_session_get_remote_settings,$(DL) >> $@ @echo $(DL) nghttp2_session_get_stream_user_data,$(DL) >> $@ Excuse the noise. Norm Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2 (revision 1735506) +++ modules/http2/NWGNUmod_http2 (working copy) @@ -391,6 +391,7 @@ @echo $(DL) nghttp2_session_callbacks_set_send_callback,$(DL) >> $@ @echo $(DL) nghttp2_session_client_new2,$(DL) >> $@ @echo $(DL) nghttp2_session_consume,$(DL) >> $@ + @echo $(DL) nghttp2_session_consume_connection,$(DL) >> $@ @echo $(DL) nghttp2_session_del,$(DL) >> $@ @echo $(DL) nghttp2_session_get_remote_settings,$(DL) >> $@ @echo $(DL) nghttp2_session_get_stream_user_data,$(DL) >> $@
httpd-2.4.x patches for NetWare build.
G/M, Attached two simple patches for httpd-2.4.x tree: Add two extra missing symbols for mod_proxy needed to allow a NetWare build at the present time. Once the auto symbols export functionality is backported, this patch would also be removed. At the present time 2.4.x waits approval to backport mod_proxy_http2, Until then the attached diff for NWGNUmakefile in modules/http2 is required - a build system vaguery says if there is only only one build target listed in the NWGNUmakefile it will try to build itself and crash. If mod_proxy_http2 is backported it becomes the second item in the build list and all remains happy. Norm Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy (revision 1735169) +++ modules/proxy/NWGNUproxy (working copy) @@ -273,6 +273,7 @@ @echo $(DL) proxy_run_scheme_handler,$(DL)>> $@ @echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@ @echo $(DL) ap_proxy_backend_broke,$(DL)>> $@ + @echo $(DL) ap_proxy_buckets_lifetime_transform,$(DL)>> $@ @echo $(DL) ap_proxy_c2hex,$(DL)>> $@ @echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@ @echo $(DL) ap_proxy_canonenc,$(DL)>> $@ @@ -318,6 +319,7 @@ @echo $(DL) ap_proxy_strncpy,$(DL)>> $@ @echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@ @echo $(DL) ap_proxy_trans_match,$(DL)>> $@ + @echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@ @echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@ @echo $(DL) ap_proxy_worker_name,$(DL)>> $@ @echo $(DL) ap_proxyerror$(DL)>> $@ Index: modules/http2/NWGNUmakefile === --- modules/http2/NWGNUmakefile (revision 1735169) +++ modules/http2/NWGNUmakefile (working copy) @@ -153,6 +153,7 @@ # TARGET_nlm = \ $(OBJDIR)/mod_http2.nlm \ + $(OBJDIR)/mod_http2.nlm \ $(EOLIST) #
A future for mod_lua and NetWare?
G/M All. When mod_lua hit httpd-trunk it was configured to have a single (global) memory pool, and NetWare compiled it and ran lua code as expected. A later modification to mod_lua code introduced a memory pool per process and required shared memory, a function group that is not in NetWare's skill set. The present code can still be compiled by NetWare but when it is loaded into the web server, results in: "mod_lua: Failed to create shared memory segment on file %s", lua_ivm_shmfile); return HTTP_INTERNAL_SERVER_ERROR; in the server logs. The question then is: 1. Would it be desirable to support both pool modes using #ifdef APR_HAS_SHM to determine pool type used (this would affect at least 3 files, mod_lua.c, lua_vmprint.c and lua_request.c); OR Having having regard for code simplification, the better(?) (newer) pool system and the age of NetWare, just remove NetWare support from mod_lua? For consideration, Norm
Re: Add ?? mod_proxy_http2 for NetWare build - All done!
G/M Stefan, All done. and many thanks for taking the time out to attend to it. Regards Norm
Add ?? mod_proxy_http2 for NetWare build - Take 3 - Very close now!
G/M Thanks Stefan for all the help so far. A build of httpd-trunk this morning shows the followning tweaks are still required: - The additional exports in the two NWGNU files are for recent changes to mod_proxy_http2; - The httpd_module export is already included in mod_http2.imp and neeed not be in the list also; - By means unknown the - @$(OBJDIR)/mod_http2.imp \ acquired 4+ trailing spaces after the backslash character and thus Make would ignore the backslash and spit the dummy on the following line; - mod_proxy_http2.c still needs the double quotes tweak. Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2(revision 1734307) +++ modules/http2/NWGNUmod_http2(working copy) @@ -260,8 +260,7 @@ # Any symbols exported to here # FILES_nlm_exports = \ - http2_module \ - @$(OBJDIR)/mod_http2.imp \ + @$(OBJDIR)/mod_http2.imp \ $(EOLIST) # @@ -370,6 +369,7 @@ @echo $(DL) h2_iq_add,$(DL) >> $@ @echo $(DL) h2_iq_create,$(DL) >> $@ @echo $(DL) h2_iq_remove,$(DL) >> $@ + @echo $(DL) h2_log2,$(DL) >> $@ @echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@ @echo $(DL) h2_request_create,$(DL) >> $@ @echo $(DL) h2_request_make,$(DL) >> $@ @@ -379,6 +379,7 @@ @echo $(DL) nghttp2_is_fatal,$(DL) >> $@ @echo $(DL) nghttp2_option_del,$(DL) >> $@ @echo $(DL) nghttp2_option_new,$(DL) >> $@ + @echo $(DL) nghttp2_option_set_no_auto_window_update,$(DL) >> $@ @echo $(DL) nghttp2_option_set_peer_max_concurrent_streams,$(DL) >> $@ @echo $(DL) nghttp2_session_callbacks_del,$(DL) >> $@ @echo $(DL) nghttp2_session_callbacks_new,$(DL) >> $@ Index: modules/http2/mod_proxy_http2.c === --- modules/http2/mod_proxy_http2.c (revision 1734307) +++ modules/http2/mod_proxy_http2.c (working copy) @@ -17,7 +17,7 @@ #include #include -#include +#include "mod_http2.h" #include "mod_proxy_http2.h" Index: modules/http2/NWGNUproxyht2 === --- modules/http2/NWGNUproxyht2 (revision 1734307) +++ modules/http2/NWGNUproxyht2 (working copy) @@ -237,6 +237,7 @@ ap_proxy_port_of_scheme \ ap_proxy_release_connection \ ap_proxy_ssl_connection_cleanup \ + ap_sock_disable_nagle \ proxy_hook_canon_handler \ proxy_hook_scheme_handler \ proxy_module \ Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2 (revision 1734307) +++ modules/http2/NWGNUmod_http2 (working copy) @@ -260,8 +260,7 @@ # Any symbols exported to here # FILES_nlm_exports = \ - http2_module \ - @$(OBJDIR)/mod_http2.imp \ + @$(OBJDIR)/mod_http2.imp \ $(EOLIST) # @@ -370,6 +369,7 @@ @echo $(DL) h2_iq_add,$(DL) >> $@ @echo $(DL) h2_iq_create,$(DL) >> $@ @echo $(DL) h2_iq_remove,$(DL) >> $@ + @echo $(DL) h2_log2,$(DL) >> $@ @echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@ @echo $(DL) h2_request_create,$(DL) >> $@ @echo $(DL) h2_request_make,$(DL) >> $@ @@ -379,6 +379,7 @@ @echo $(DL) nghttp2_is_fatal,$(DL) >> $@ @echo $(DL) nghttp2_option_del,$(DL) >> $@ @echo $(DL) nghttp2_option_new,$(DL) >> $@ + @echo $(DL) nghttp2_option_set_no_auto_window_update,$(DL) >> $@ @echo $(DL) nghttp2_option_set_peer_max_concurrent_streams,$(DL) >> $@ @echo $(DL) nghttp2_session_callbacks_del,$(DL) >> $@ @echo $(DL) nghttp2_session_callbacks_new,$(DL) >> $@ Index: modules/http2/mod_proxy_http2.c === --- modules/http2/mod_proxy_http2.c (revision 1734307) +++ modules/http2/mod_proxy_http2.c (working copy) @@ -17,7 +17,7 @@ #include #include -#include +#include "mod_http2.h" #include "mod_proxy_http2.h" Index: modules/http2/NWGNUproxyht2 === --- modules/http2/NWGNUproxyht2 (revision 1734307) +++ modules/http2/NWGNUproxyht2 (working copy) @@ -237,6 +237,7 @@ ap_proxy_port_of_scheme \ ap_proxy_release_connection \ ap_proxy_ssl_connection_cleanup \ + ap_sock_disable_nagle \ proxy_hook_canon_handler \ proxy_hook_scheme_handler \ proxy_module \
h2_request.c > ap_create_request() puzzle.
G/E Can't decide if the following: GEN obj_release/mod_http2_link.opt LINK obj_release/mod_http2.nlm ### mwldnlm Linker Error: # Undefined symbol: ap_create_request in # h2_request.o is a typo and should be calling ap_create_request_config() or if: request_rec *ap_create_request(conn_rec *conn) (protocol.c/http_protocol.h) needs to declared as: AP_DECLARE(request_rec) *ap_create_request(conn_rec *conn) otherwise the ap_create_request symbol is not exported from the server for use by other modules...? Norm
Add ?? mod_prox_http2 for NetWare build - Take 2
G/M, This supercedes Take 1 due to additional exports now needed by mod_proxy_http2 from mod_proxy and mod_http2. Same caveat applies re tweaks to mod_proxy_http2 source files. Norm # # This Makefile requires the environment var NGH2SRC # pointing to the base directory of nghttp2 source tree. # # # Declare the sub-directories to be built here # SUBDIRS = \ $(EOLIST) # # Get the 'head' of the build environment. This includes default targets and # paths to tools # include $(AP_WORK)/build/NWGNUhead.inc # # build this level's files # # Make sure all needed macro's are defined # # # These directories will be at the beginning of the include list, followed by # INCDIRS # XINCDIRS+= \ $(APR)/include \ $(APRUTIL)/include \ $(SRC)/include \ $(NGH2SRC)/lib/includes \ $(STDMOD)/proxy \ $(SERVER)/mpm/NetWare \ $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ $(EOLIST) # # These defines will come after DEFINES # XDEFINES+= \ $(EOLIST) # # These flags will be added to the link.opt file # XLFLAGS += \ -L$(OBJDIR) \ $(EOLIST) # # These values will be appended to the correct variables based on the value of # RELEASE # ifeq "$(RELEASE)" "debug" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "noopt" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "release" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif # # These are used by the link target if an NLM is being generated # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # NLM_NAME= proxyht2 # # This is used by the link '-desc ' directive. # If left blank, NLM_NAME will be used. # NLM_DESCRIPTION = Apache $(VERSION_STR) HTTP2 Proxy module # # This is used by the '-threadname' directive. If left blank, # NLM_NAME Thread will be used. # NLM_THREAD_NAME = $(NLM_NAME) # # If this is specified, it will override VERSION value in # $(AP_WORK)/build/NWGNUenvironment.inc # NLM_VERSION = # # If this is specified, it will override the default of 64K # NLM_STACK_SIZE = 65536 # # If this is specified it will be used by the link '-entry' directive # NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # NLM_EXIT_SYM= # # If this is specified it will be used by the link '-check' directive # NLM_CHECK_SYM = # # If this is specified it will be used by the link '-flags' directive # NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # XDCDATA = # # Declare all target files (you must add your files here) # # # If there is an NLM target, put it here # TARGET_nlm = \ $(OBJDIR)/$(NLM_NAME).nlm \ $(EOLIST) # # If there is an LIB target, put it here # TARGET_lib = \ $(EOLIST) # # These are the OBJ files needed to create the NLM target above. # Paths must all use the '/' character # FILES_nlm_objs = \ $(OBJDIR)/mod_proxy_http2.o \ $(OBJDIR)/h2_proxy_session.o \ $(EOLIST) # # These are the LIB files needed to create the NLM target above. # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ $(PRELUDE) \ $(EOLIST) # # These are the modules that the above NLM target depends on to load. # These will be added as a module command in the link.opt file. # FILES_nlm_modules = \ Libc \ Apache2 \ mod_proxy \ mod_http2 \ $(EOLIST) # # If the nlm has a msg file, put it's path here # FILE_nlm_msg = # # If the nlm has a hlp file put it's path here # FILE_nlm_hlp = # # If this is specified, it will override $(NWOS)\copyright.txt. # FILE_nlm_copyright = # # Any additional imports go here # FILES_nlm_Ximports = \ @libc.imp \ @aprlib.imp \ @httpd.imp \ @$(OBJDIR)/mod_http2.imp \ ap_proxy_acquire_connection \ ap_proxy_canon_netloc \ ap_proxy_canonenc \ ap_proxy_connect_backend \
Add ?? mod_proxy_http2 for NetWare build - Take 1
G/M, The attached patch and NWGNUproxyht2 builds the (trunk) mod_proxy_http2 module BUT does include some AS YET unapproved minor tweaks in the two proxy_http2 source files. Norm Index: modules/http2/h2_proxy_session.c === --- modules/http2/h2_proxy_session.c (revision 1733642) +++ modules/http2/h2_proxy_session.c (working copy) @@ -19,7 +19,7 @@ #include #include -#include +#include "mod_http2.h" #include "h2.h" #include "h2_int_queue.h" Index: modules/http2/NWGNUmod_http2 === --- modules/http2/NWGNUmod_http2 (revision 1733642) +++ modules/http2/NWGNUmod_http2 (working copy) @@ -259,7 +259,7 @@ # Any symbols exported to here # FILES_nlm_exports = \ - http2_module \ + @$(OBJDIR)/mod_http2.imp \ $(EOLIST) # @@ -273,7 +273,7 @@ libs :: $(OBJDIR) $(NGH2SRC)/lib/config.h $(TARGET_lib) -nlms :: libs $(TARGET_nlm) +nlms :: libs $(OBJDIR)/mod_http2.imp $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the @@ -289,7 +289,8 @@ # vpath %.c $(NGH2SRC)/lib -$(NGH2SRC)/lib/config.h : NWGNUmakefile +$(NGH2SRC)/lib/config.h : NWGNUmod_http2 + @-$(RM) $@ @echo $(DL)GEN $@$(DL) @echo $(DL)/* For NetWare target.$(DL) > $@ @echo $(DL)** Do not edit - created by Make!$(DL) >> $@ @@ -351,6 +352,58 @@ @echo $(DL)#endif /* NGH2_CONFIG_H */$(DL) >> $@ # +# Exports from mod_http2 for mod_proxy_http2 +$(OBJDIR)/mod_http2.imp : NWGNUmod_http2 + @-$(RM) $@ + @echo $(DL)GEN $@$(DL) + @echo $(DL) (HTTP2)$(DL) > $@ + @echo $(DL) http2_module,$(DL) >> $@ + @echo $(DL) h2_ihash_add,$(DL) >> $@ + @echo $(DL) h2_ihash_clear,$(DL) >> $@ + @echo $(DL) h2_ihash_count,$(DL) >> $@ + @echo $(DL) h2_ihash_create,$(DL) >> $@ + @echo $(DL) h2_ihash_is_empty,$(DL) >> $@ + @echo $(DL) h2_ihash_iter,$(DL) >> $@ + @echo $(DL) h2_ihash_remove,$(DL) >> $@ + @echo $(DL) h2_iq_add,$(DL) >> $@ + @echo $(DL) h2_iq_create,$(DL) >> $@ + @echo $(DL) h2_iq_remove,$(DL) >> $@ + @echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@ + @echo $(DL) h2_request_create,$(DL) >> $@ + @echo $(DL) h2_request_make,$(DL) >> $@ + @echo $(DL) h2_util_camel_case_header,$(DL) >> $@ + @echo $(DL) h2_util_frame_print,$(DL) >> $@ + @echo $(DL) h2_util_ngheader_make_req,$(DL) >> $@ + @echo $(DL) nghttp2_is_fatal,$(DL) >> $@ + @echo $(DL) nghttp2_option_del,$(DL) >> $@ + @echo $(DL) nghttp2_option_new,$(DL) >> $@ + @echo $(DL) nghttp2_option_set_peer_max_concurrent_streams,$(DL) >> $@ + @echo $(DL) nghttp2_session_callbacks_del,$(DL) >> $@ + @echo $(DL) nghttp2_session_callbacks_new,$(DL) >> $@ + @echo $(DL) nghttp2_session_callbacks_set_before_frame_send_callback,$(DL) >> $@ + @echo $(DL) nghttp2_session_callbacks_set_on_data_chunk_recv_callback,$(DL) >> $@ + @echo $(DL) nghttp2_session_callbacks_set_on_frame_recv_callback,$(DL) >> $@ + @echo $(DL) nghttp2_session_callbacks_set_on_header_callback,$(DL) >> $@ + @echo $(DL) nghttp2_session_callbacks_set_on_stream_close_callback,$(DL) >> $@ + @echo $(DL) nghttp2_session_callbacks_set_send_callback,$(DL) >> $@ + @echo $(DL) nghttp2_session_client_new2,$(DL) >> $@ + @echo $(DL) nghttp2_session_consume,$(DL) >> $@ + @echo $(DL) nghttp2_session_del,$(DL) >> $@ + @echo $(DL) nghttp2_session_get_remote_settings,$(DL) >> $@ + @echo $(DL) nghttp2_session_get_stream_user_data,$(DL) >> $@ + @echo $(DL) nghttp2_session_mem_recv,$(DL) >> $@ + @echo $(DL) nghttp2_session_resume_data,$(DL) >> $@ + @echo $(DL) nghttp2_session_send,$(DL) >> $@ + @echo $(DL) nghttp2_session_want_read,$(DL) >> $@ + @echo $(DL) nghttp2_session_want_write,$(DL) >> $@ + @echo $(DL) nghttp2_strerror,$(DL) >> $@ + @echo $(DL) nghttp2_submit_goaway,$(DL) >> $@ + @echo $(DL) nghttp2_submit_request,$(DL) >> $@ + @echo $(DL) nghttp2_submit_rst_stream,$(DL) >> $@ + @echo $(DL) nghttp2_submit_settings,$(DL) >> $@ + @echo $(DL) nghttp2_submit_window_update,$(DL) >> $@ + @echo $(DL) nghttp2_version$(DL) >> $@ + # Include the 'tail' makefile that has targets that depend on variables defined # in this makefile # Index: modules/http2/NWGNUmakefile === --- modules/http2/NWGNUmakefile (revision 1733642) +++ modules/http2/NWGNUmakefile (working copy) @@ -153,7 +153,7 @@ # TARGET_nlm = \ $(OBJDIR)/mod_http2.nlm \ - $(OBJDIR)/mod_http2.nlm \ + $(OBJDIR)/proxyht2.nlm \ $(EOLIST) # Index: modules/http2/mod_proxy_http2.c === --- modules/http2/mod_proxy_http2.c (revision 1733642) +++ modules/http2/mod_proxy_http2.c (working copy) @@ -17,7 +17,7 @@ #include #include -#include +#include "mod_http2.h" #include "mod_proxy_http2.h" # # This Makefile requires the environment var NGH2SRC # pointing to the base directory of nghttp2 source tree. # # # Declare the sub-directories to be built here # SUBDIRS = \ $(EOLIST) # # Get the
A (likely) simple question regarding mod_proxy_http2
Trying my limited knowledge at compiling modules\http2\mod_proxy_http2, and the compiler (no sniggering please) barfs in both source: h2_proxy_session.c and mod_proxy_http2.c with an error that says they (respectively) can't open mod_http2.h. mod_http2.c has #include "mod_http2.h", the above proxy source have #include Since the NetWare makefiles are always local to the built dir, AFAIK using <> in the #include means a system search path (-Ixxx) whereas the double quotes implies 'local dir', so change to #include "mod_http2.h" and it they compile nicely; an alternative would to add -I., but have never seen this to be necessary elsewhere in the httpd build system. Any comments? TIA, Norm
httpd-trunk/modules/http2/NWGNUmod_http2 svn EOL Setting
G/M, Could someone with a few free seconds set the httpd-trunk/modules/http2/NWGNUmod_http2 file to have the appropriate svn EOL setting? TIA Norm
Re: Backport of auto proxy(_util) exports?
G/M, As of last night the following additional exports from 2.4 mod_proxy builds all NetWare modules presently in the 2.4 modules/proxy dir: Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy(revision 1733007) +++ modules/proxy/NWGNUproxy(working copy) @@ -273,6 +273,7 @@ @echo $(DL) proxy_run_scheme_handler,$(DL)>> $@ @echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@ @echo $(DL) ap_proxy_backend_broke,$(DL)>> $@ + @echo $(DL) ap_proxy_buckets_lifetime_transform,$(DL)>> $@ @echo $(DL) ap_proxy_c2hex,$(DL)>> $@ @echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@ @echo $(DL) ap_proxy_canonenc,$(DL)>> $@ @@ -318,6 +319,7 @@ @echo $(DL) ap_proxy_strncpy,$(DL)>> $@ @echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@ @echo $(DL) ap_proxy_trans_match,$(DL)>> $@ + @echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@ @echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@ @echo $(DL) ap_proxy_worker_name,$(DL)>> $@ @echo $(DL) ap_proxyerror$(DL)>> $@ Norm On 1/03/2016 2:09 PM, Rainer Jung wrote: Am 29.02.2016 um 23:03 schrieb NormW: G/M Rainer, Any known reason your recent tweaks to automatically create the mod_proxy exports list cannot be nominated for back-port to 2.4.x? Not that I'm aware off. Things have settled a bit now, so probably it' the time to propose a backport. If there is a technical and/or time constraint I'll submit a patch for at least a couple of symbols needed to build 2.4.x/modules/proxy. That would be great! Rainer Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy (revision 1733007) +++ modules/proxy/NWGNUproxy (working copy) @@ -273,6 +273,7 @@ @echo $(DL) proxy_run_scheme_handler,$(DL)>> $@ @echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@ @echo $(DL) ap_proxy_backend_broke,$(DL)>> $@ + @echo $(DL) ap_proxy_buckets_lifetime_transform,$(DL)>> $@ @echo $(DL) ap_proxy_c2hex,$(DL)>> $@ @echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@ @echo $(DL) ap_proxy_canonenc,$(DL)>> $@ @@ -318,6 +319,7 @@ @echo $(DL) ap_proxy_strncpy,$(DL)>> $@ @echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@ @echo $(DL) ap_proxy_trans_match,$(DL)>> $@ + @echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@ @echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@ @echo $(DL) ap_proxy_worker_name,$(DL)>> $@ @echo $(DL) ap_proxyerror$(DL)>> $@
Backport of auto proxy(_util) exports?
G/M Rainer, Any known reason your recent tweaks to automatically create the mod_proxy exports list cannot be nominated for back-port to 2.4.x? If there is a technical and/or time constraint I'll submit a patch for at least a couple of symbols needed to build 2.4.x/modules/proxy. Norm
Re: httpd-trunk/modules/http2 gets a proxy
On 12/02/2016 9:13 PM, Stefan Eissing wrote: Thanks. Added in r1729969. Am 11.02.2016 um 21:52 schrieb NormW <no...@gknw.net>: Thanks, Norm
Re: httpd-trunk/modules/http2 gets a proxy
G/M And the start of yje weekend. On 13/02/2016 4:06 AM, Rainer Jung wrote: Am 12.02.2016 um 11:13 schrieb Stefan Eissing: Thanks. Added in r1729969. Am 11.02.2016 um 21:52 schrieb NormW <no...@gknw.net>: The .txt extension is a bogus extension added by my mailer I assume. I got confused. Which file now builds mod_proxy_http2 on Netware? I can't find it. Shouldn't we also need a modules/http2/NWGNUmod_proxy_http2 file? Yes. I avoided digging further into that until the new NWGNUmakefile and NWGNUmod_http2 got added. Once they're playing correctly, then will come NWGNUproxy_htp2 (?) which will also get added to the list in the NWGNUmakefile. NetWare has a file name limitation that needs some regard; while the file system of later OS releases supports 'long file names' on the disk , every loadable module has an internal 8 char name IIRC, and no two nlm's with the same 8 char name can be loaded at the same time. IIRC the 8 chars is the first 8 chars of the modules disk file name. (Anyone who knows better please jump in here.) Regards, Rainer HTH, Norm
Re: httpd-trunk/modules/http2 gets a proxy
G/M Stefan, I've specifically waited until sunup, which will hopefully mean I've got a clearer head. A check of the NWGNUmakefile I sent yesterday DID have a number of bugs in it, all largely my fault, and some the result of doing an SVN Update to my local copy at the wrong time. We'll call that the past. Attached are the two files now guarenteed (I've checked them twice this morning) and can even guarentee mod_http2 builds nghtttp2 v1.7.1, which contains a Security Fix, CVE-2016-1544. Process: 1. Delete /http2/NWGNUmakefile... it is not worth trying to do a diff against it, its innards have changed that much). 2. Add the two attached files herewith to /http2. 3. Job done. As for making things easier with a 'commit', I'd still make at least similar stuffups, whereas the ultimate 'easy' would be to wave goodbye to NetWare: 155+ build files and a few OS-specific files could go, your may be able to argue for something later than C89 as minimum standard, and so on... ...and I'm out of a job. But equally, once changes in trunk settle out, building is fairly stable for months (years?) at a stretch, and there'd be nothing for my 'commit' to do. Regard, and apologies for the transient trouble. Norm On 11/02/2016 8:31 PM, Stefan Eissing wrote: Uhm, is there an unresolved conflict in the first file? -Stefan PS. You know, it *would* actually be easier if you had commit access... ;-) Am 11.02.2016 um 03:09 schrieb NormW <no...@gknw.net>: G/A Stefan, My BBAADD. Until recently /http2 was home only to mod_http2, and to keep things automatic my NWGNUmakefile in there used a wildcard *.c to get the list of object files to build there. When the compile failed due to added .c files I made a few tweaks to the NWGNU and it all linked without issue again so I forwarded the small tweaks. Closer reading of the list and the added .c revealed there are (at least) two modules now in /http2. This necessitated a change of the NWGNU to use a specified list of .c for a start, and removal of a couple of the patch lines I'd recently sent. Because other modules will be sharing the same dir I've renamed the original NWNUmakefile to NWGNUmod_http2 and there is now a new NWGNUmakefile whose only job is to call the other NWGNU files that will eventually exist in the dir. (If all this sounds confusing it probably is, but by way of example see /proxy dir and note a NWGNUmakefile that contains a list of executables to build.) If we are still speaking after explaining all that, the new files are attached, thus: : NWGUmod_http2 which now has the list of /http2 files to build mod_http2; : NWGNUmakefile which, FTM, has a list of modules to build, but I won't try to explain why the list has a double entry if there is only one (so far) to build. Hopefully I will eventually work out a process to do away with this 'additional' NWGNUmakefile, which would allow removal of quite a few from the source tree. Apologies for the bother, Norm On 10/02/2016 10:34 PM, Stefan Eissing wrote: Applied in r1729583. Thanks! Am 08.02.2016 um 23:07 schrieb NormW <no...@gknw.net>: G/M, Recent additions to http-trunk/modules/http2 require the attached apatch to the http2 NetWare build file: Index: modules/http2/NWGNUmakefile === --- modules/http2/NWGNUmakefile (revision 1729251) +++ modules/http2/NWGNUmakefile (working copy) @@ -34,6 +34,8 @@ $(NGH2SRC)/lib/ \ $(NGH2SRC)/lib/includes \ $(SERVER)/mpm/NetWare \ + $(STDMOD)/proxy \ + $(STDMOD)/ssl \ $(NWOS) \ $(EOLIST) @@ -55,6 +57,7 @@ # XLFLAGS += \ -L$(OBJDIR) \ + -L../proxy \ $(EOLIST) # @@ -224,6 +227,7 @@ @libc.imp \ @aprlib.imp \ @httpd.imp \ + @mod_proxy.imp \ $(EOLIST) # The first 2 extra lines allow the compiler to find extra headers, the 3rd allows the linker to locate mod_proxy.imp. Please review and apply this if it seems reasonable. Norm # # Declare the sub-directories to be built here # SUBDIRS = \ $(EOLIST) # # Get the 'head' of the build environment. This includes default targets and # paths to tools # include $(AP_WORK)/build/NWGNUhead.inc # # build this level's files # # Make sure all needed macro's are defined # # # These directories will be at the beginning of the include list, followed by # INCDIRS # XINCDIRS+= \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ $(EOLIST) # # These defines will come after DEFINES # XDEFINES+= \ $(EOLIST) # # These flags will be added to the link.opt file # XLFLAGS += \
Re: httpd-trunk/modules/http2 gets a proxy
G/A Stefan, My BBAADD. Until recently /http2 was home only to mod_http2, and to keep things automatic my NWGNUmakefile in there used a wildcard *.c to get the list of object files to build there. When the compile failed due to added .c files I made a few tweaks to the NWGNU and it all linked without issue again so I forwarded the small tweaks. Closer reading of the list and the added .c revealed there are (at least) two modules now in /http2. This necessitated a change of the NWGNU to use a specified list of .c for a start, and removal of a couple of the patch lines I'd recently sent. Because other modules will be sharing the same dir I've renamed the original NWNUmakefile to NWGNUmod_http2 and there is now a new NWGNUmakefile whose only job is to call the other NWGNU files that will eventually exist in the dir. (If all this sounds confusing it probably is, but by way of example see /proxy dir and note a NWGNUmakefile that contains a list of executables to build.) If we are still speaking after explaining all that, the new files are attached, thus: : NWGUmod_http2 which now has the list of /http2 files to build mod_http2; : NWGNUmakefile which, FTM, has a list of modules to build, but I won't try to explain why the list has a double entry if there is only one (so far) to build. Hopefully I will eventually work out a process to do away with this 'additional' NWGNUmakefile, which would allow removal of quite a few from the source tree. Apologies for the bother, Norm On 10/02/2016 10:34 PM, Stefan Eissing wrote: Applied in r1729583. Thanks! Am 08.02.2016 um 23:07 schrieb NormW <no...@gknw.net>: G/M, Recent additions to http-trunk/modules/http2 require the attached apatch to the http2 NetWare build file: Index: modules/http2/NWGNUmakefile === --- modules/http2/NWGNUmakefile (revision 1729251) +++ modules/http2/NWGNUmakefile (working copy) @@ -34,6 +34,8 @@ $(NGH2SRC)/lib/ \ $(NGH2SRC)/lib/includes \ $(SERVER)/mpm/NetWare \ + $(STDMOD)/proxy \ + $(STDMOD)/ssl \ $(NWOS) \ $(EOLIST) @@ -55,6 +57,7 @@ # XLFLAGS += \ -L$(OBJDIR) \ + -L../proxy \ $(EOLIST) # @@ -224,6 +227,7 @@ @libc.imp \ @aprlib.imp \ @httpd.imp \ + @mod_proxy.imp \ $(EOLIST) # The first 2 extra lines allow the compiler to find extra headers, the 3rd allows the linker to locate mod_proxy.imp. Please review and apply this if it seems reasonable. Norm # # Declare the sub-directories to be built here # SUBDIRS = \ $(EOLIST) # # Get the 'head' of the build environment. This includes default targets and # paths to tools # include $(AP_WORK)/build/NWGNUhead.inc # # build this level's files # # Make sure all needed macro's are defined # # # These directories will be at the beginning of the include list, followed by # INCDIRS # XINCDIRS+= \ <<<<<<< .mine === $(APR)/include \ $(APRUTIL)/include \ $(SRC)/include \ $(NGH2SRC)/lib/ \ $(NGH2SRC)/lib/includes \ $(SERVER)/mpm/NetWare \ $(STDMOD)/proxy \ $(STDMOD)/ssl \ $(NWOS) \ >>>>>>> .r1729754 $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ $(EOLIST) # # These defines will come after DEFINES # XDEFINES+= \ $(EOLIST) # # These flags will be added to the link.opt file # XLFLAGS += \ -L../proxy \ $(EOLIST) # # These values will be appended to the correct variables based on the value of # RELEASE # ifeq "$(RELEASE)" "debug" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "noopt" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "release" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif # # These are used by the link target if an NLM is being g
Re: Netware proxy makefiles and USE_STDSOCKETS
A Sunny Afternoon Rainer, On 9/02/2016 10:31 AM, Rainer Jung wrote: I note the Windock imports are back where needed and all of /proxy now builds again without issue. As for /http2, ir seems I was rather hasty myself. My original NWGNU for http2 assumed a wildcard list of all .c in the directory for mod_http2, which I now find is incorrect, so I've converted (as temp measure) to a specified list of files, as it seems there could be multiple modules in the http2 dir. However, Gregg Smith has asked the question of where the http2 proxy bits should reside, so I will await a definitive answer to that first. Norm Hi Norm, Am 08.02.2016 um 22:45 schrieb NormW: G/M Brad, G/M Rainer On 8/02/2016 9:17 AM, Brad Nicholes wrote: Rainer, It has actually been quite a while since I have been on this list. I did most of the initial Netware port of Apache. Apache for Netware uses its own implementation of Winsock as the socket layer. This is the reason why the make files specify not to use the standard sockets. The Netware version of Winsock also has it's own implementation of SSL which is why most of the time mod_ssl is not used by Apache for Netware. Basically, the Apache for Netware make files should always be building with Winsock. thanks, Brad A flashback to earlier days. Pleased you're still about. Rainer, Just updated from httpd-trunk and now get in proxy: That full output was useful. I had moved the import to the main NWGNUmakefile, but the module specific ones didn't append to the list of import files but instead overwrote it. Now that I can see from your list, which of the many proxy modules actually need those imports, I decided to move the import back into the individual module makefiles. I removed them afterwards for mod_proxy_express and mod_proxy_hcheck, because those seem to not have link errors without those imports. Finally I adjusted the comment like you suggested. One brain-twiser less. Hopefully we are good to go now. Regards, Rainer Building D:/Projects/svn/httpd-trunk/modules/proxy Calling NWGNUproxy LINK obj_release/proxy.nlm ### mwldnlm Linker Error: # Undefined symbol: WS2_32_htonl in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_inet_ntoa in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_htonl in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_inet_ntoa in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_inet_ntoa in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_htonl in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WSAStartup in # libprews.o ### mwldnlm Linker Error: # Undefined symbol: WSACleanup in # libprews.o Errors caused tool to abort. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 'obj_release/proxy.nlm' failed make[3]: *** [obj_release/proxy.nlm] Error 1 make[3]: Target 'default' not remade because of errors. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 'obj_release/proxy.nlm' failed make[2]: *** [obj_release/proxy.nlm] Error 2 Calling NWGNUproxyftp GEN obj_release/proxyftp_cc.opt CC mod_proxy_ftp.c CC ../arch/netware/libprews.c GEN obj_release/proxyftp_link.opt LINK obj_release/proxyftp.nlm ### mwldnlm Linker Error: # Undefined symbol: WS2_32_htons in # mod_proxy_ftp.o ### mwldnlm Linker Error: # Undefined symbol: WSAStartup in # libprews.o ### mwldnlm Linker Error: # Undefined symbol: WSACleanup in # libprews.o Errors caused tool to abort. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 'obj_release/proxyftp.nlm' failed make[3]: *** [obj_release/proxyftp.nlm] Error 1 make[3]: Target 'default' not remade because of errors. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 'obj_release/proxyftp.nlm' failed make[2]: *** [obj_release/proxyftp.nlm] Error 2 Calling NWGNUproxyhtp GEN obj_release/proxyhtp_cc.opt CC mod_proxy_http.c CC ../arch/netware/libprews.c GEN obj_release/proxyhtp_link.opt LINK obj_release/proxyhtp.nlm ### mwldnlm Linker Error: # Undefined symbol: WSAStartup in # libprews.o ### mwldnlm Linker Error: # Undefined symbol: WSACleanup in # libprews.o Errors caused tool to abort. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 'obj_release/proxyhtp.nlm' failed make[3]: *** [obj_release/proxyhtp.nlm] Error 1 make[3]: Target 'default' not remade because of errors. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 'obj_release/proxyhtp.nlm' failed make[2]: *** [obj_release/proxyhtp.nlm] Error 2 Calling NWGNUproxybalancer GEN obj_release/proxybalancer_cc.opt CC mod_proxy_balancer.c CC ../arch/netware/libprews.c GEN obj_release/proxybalancer_link.opt LINK obj_release/proxybalancer.nlm ### mwldnlm Linker Error: # Undefined symbol: WSAStartup in # libprews.o ### mwldnlm Linker Error: # Undefined symbol: WSACleanup
Re: Netware proxy makefiles and USE_STDSOCKETS
G/M Brad, G/M Rainer On 8/02/2016 9:17 AM, Brad Nicholes wrote: Rainer, It has actually been quite a while since I have been on this list. I did most of the initial Netware port of Apache. Apache for Netware uses its own implementation of Winsock as the socket layer. This is the reason why the make files specify not to use the standard sockets. The Netware version of Winsock also has it's own implementation of SSL which is why most of the time mod_ssl is not used by Apache for Netware. Basically, the Apache for Netware make files should always be building with Winsock. thanks, Brad A flashback to earlier days. Pleased you're still about. Rainer, Just updated from httpd-trunk and now get in proxy: Building D:/Projects/svn/httpd-trunk/modules/proxy Calling NWGNUproxy LINK obj_release/proxy.nlm ### mwldnlm Linker Error: # Undefined symbol: WS2_32_htonl in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_inet_ntoa in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_htonl in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_inet_ntoa in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_inet_ntoa in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WS2_32_htonl in # proxy_util.o ### mwldnlm Linker Error: # Undefined symbol: WSAStartup in # libprews.o ### mwldnlm Linker Error: # Undefined symbol: WSACleanup in # libprews.o Errors caused tool to abort. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 'obj_release/proxy.nlm' failed make[3]: *** [obj_release/proxy.nlm] Error 1 make[3]: Target 'default' not remade because of errors. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 'obj_release/proxy.nlm' failed make[2]: *** [obj_release/proxy.nlm] Error 2 Calling NWGNUproxyftp GEN obj_release/proxyftp_cc.opt CC mod_proxy_ftp.c CC ../arch/netware/libprews.c GEN obj_release/proxyftp_link.opt LINK obj_release/proxyftp.nlm ### mwldnlm Linker Error: # Undefined symbol: WS2_32_htons in # mod_proxy_ftp.o ### mwldnlm Linker Error: # Undefined symbol: WSAStartup in # libprews.o ### mwldnlm Linker Error: # Undefined symbol: WSACleanup in # libprews.o Errors caused tool to abort. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 'obj_release/proxyftp.nlm' failed make[3]: *** [obj_release/proxyftp.nlm] Error 1 make[3]: Target 'default' not remade because of errors. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 'obj_release/proxyftp.nlm' failed make[2]: *** [obj_release/proxyftp.nlm] Error 2 Calling NWGNUproxyhtp GEN obj_release/proxyhtp_cc.opt CC mod_proxy_http.c CC ../arch/netware/libprews.c GEN obj_release/proxyhtp_link.opt LINK obj_release/proxyhtp.nlm ### mwldnlm Linker Error: # Undefined symbol: WSAStartup in # libprews.o ### mwldnlm Linker Error: # Undefined symbol: WSACleanup in # libprews.o Errors caused tool to abort. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 'obj_release/proxyhtp.nlm' failed make[3]: *** [obj_release/proxyhtp.nlm] Error 1 make[3]: Target 'default' not remade because of errors. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 'obj_release/proxyhtp.nlm' failed make[2]: *** [obj_release/proxyhtp.nlm] Error 2 Calling NWGNUproxybalancer GEN obj_release/proxybalancer_cc.opt CC mod_proxy_balancer.c CC ../arch/netware/libprews.c GEN obj_release/proxybalancer_link.opt LINK obj_release/proxybalancer.nlm ### mwldnlm Linker Error: # Undefined symbol: WSAStartup in # libprews.o ### mwldnlm Linker Error: # Undefined symbol: WSACleanup in # libprews.o Errors caused tool to abort. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 'obj_release/proxybalancer.nlm' failed make[3]: *** [obj_release/proxybalancer.nlm] Error 1 make[3]: Target 'default' not remade because of errors. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 'obj_release/proxybalancer.nlm' failed make[2]: *** [obj_release/proxybalancer.nlm] Error 2 Calling NWGNUproxyajp GEN obj_release/proxyajp_cc.opt CC mod_proxy_ajp.c CC ajp_header.c CC ajp_msg.c CC ajp_link.c CC ajp_utils.c GEN obj_release/proxyajp_link.opt LINK obj_release/proxyajp.nlm ### mwldnlm Linker Error: # Undefined symbol: WSAStartup in # libprews.o ### mwldnlm Linker Error: # Undefined symbol: WSACleanup in # libprews.o Errors caused tool to abort. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 'obj_release/proxyajp.nlm' failed make[3]: *** [obj_release/proxyajp.nlm] Error 1 make[3]: Target 'default' not remade because of errors. D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 'obj_release/proxyajp.nlm' failed make[2]: *** [obj_release/proxyajp.nlm] Error 2 Calling NWGNUproxyfcgi GEN obj_release/proxyfcgi_cc.opt CC mod_proxy_fcgi.c CC
httpd-trunk/modules/http2 gets a proxy
G/M, Recent additions to http-trunk/modules/http2 require the attached apatch to the http2 NetWare build file: Index: modules/http2/NWGNUmakefile === --- modules/http2/NWGNUmakefile (revision 1729251) +++ modules/http2/NWGNUmakefile (working copy) @@ -34,6 +34,8 @@ $(NGH2SRC)/lib/ \ $(NGH2SRC)/lib/includes \ $(SERVER)/mpm/NetWare \ + $(STDMOD)/proxy \ + $(STDMOD)/ssl \ $(NWOS) \ $(EOLIST) @@ -55,6 +57,7 @@ # XLFLAGS+= \ -L$(OBJDIR) \ + -L../proxy \ $(EOLIST) # @@ -224,6 +227,7 @@ @libc.imp \ @aprlib.imp \ @httpd.imp \ + @mod_proxy.imp \ $(EOLIST) # The first 2 extra lines allow the compiler to find extra headers, the 3rd allows the linker to locate mod_proxy.imp. Please review and apply this if it seems reasonable. Norm Index: modules/http2/NWGNUmakefile === --- modules/http2/NWGNUmakefile (revision 1729251) +++ modules/http2/NWGNUmakefile (working copy) @@ -34,6 +34,8 @@ $(NGH2SRC)/lib/ \ $(NGH2SRC)/lib/includes \ $(SERVER)/mpm/NetWare \ + $(STDMOD)/proxy \ + $(STDMOD)/ssl \ $(NWOS) \ $(EOLIST) @@ -55,6 +57,7 @@ # XLFLAGS += \ -L$(OBJDIR) \ + -L../proxy \ $(EOLIST) # @@ -224,6 +227,7 @@ @libc.imp \ @aprlib.imp \ @httpd.imp \ + @mod_proxy.imp \ $(EOLIST) #
Re: Netware proxy makefiles and USE_STDSOCKETS
Rainer, Apologies for the silence, but my major focus ATM is getting my place fixed up with the view to moving, but did have a go at a build with the USE_STDSOCKETS but something appears to be broken in apr-1.5, but have not yet had a chance to look into it. Medical visit this morning and if I get home soon enough will look further at it. FTM, Norm PS If GK is reading this he might have a look at it, but don't hold your breath.
Re: Netware proxy makefiles and USE_STDSOCKETS
G/M Rainer On 6/02/2016 10:28 PM, Rainer Jung wrote: Hi there, most of the proxy makefiles contain the following block: # Don't link with Winsock if standard sockets are being used ifndef USE_STDSOCKETS FILES_nlm_Ximports += @ws2nlm.imp \ $(EOLIST) endif But it is missing from: - NWGNUproxycon - NWGNUproxywstunnel - all of the NWGNUproxylbm_... files Is there a reason for this? Can it be added to all of them? Could it then be moved to NWGNUmakefile instead? Regards, Rainer At a Guess ,No. NetWare's default build is to use Novsockets, and if an nlm links without issue it should have no issue with then. Once the sun is up I will try a build using STD_SOCKETS=1 and see what if anything breaks. Being a 're;ative' newbie I'd I've if sockeys are these need to be attended, but the geral rule is if the compiler is happy go with the flow. Will advise later today. Norm
httpd-trunk/modules/proxy/
G/M, httpd-trunk/modules/proxy/mod_proxy_hcheck.c needs an EOL style tweek if I'm not mistaken. Norm.
Re: Proxy_Util needs another export.
/proxylbm_hb_link.opt LINK obj_release/proxylbm_hb.nlm Calling NWGNUproxylbm_req GEN obj_release/proxylbm_req_cc.opt CC balancers/mod_lbmethod_byrequests.c GEN obj_release/proxylbm_req_link.opt LINK obj_release/proxylbm_req.nlm Calling NWGNUproxylbm_traf GEN obj_release/proxylbm_traf_cc.opt CC balancers/mod_lbmethod_bytraffic.c GEN obj_release/proxylbm_traf_link.opt LINK obj_release/proxylbm_traf.nlm Calling NWGNUproxywstunnel GEN obj_release/proxywstunnel_cc.opt CC mod_proxy_wstunnel.c GEN obj_release/proxywstunnel_link.opt LINK obj_release/proxywstunnel.nlm A quirk of the Linker is to occasionally repeat error messages, so ignore duplcated missing symbols messages from the Linker. Norm On 5/02/2016 11:35 PM, Rainer Jung wrote: Am 05.02.2016 um 12:14 schrieb NormW: G/E 9.51pm in Oz Updated http-trunk (last mod_proxy.h by Yann) and now get the following: Building D:/Projects/svn/httpd-trunk/modules/proxy Calling NWGNUproxy GEN obj_release/proxy_cc.opt CC mod_proxy.c CC proxy_util.c CC ../arch/netware/libprews.c GEN obj_release/proxy_link.opt LINK obj_release/proxy.nlm ### mwldnlm Linker Error: # Undefined symbol: ap_proxy_connect_uds in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_create_req in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_detach_backend in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_fixups in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_get_create_req in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_get_detach_backend in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_get_fixups in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_get_request_status in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_request_status in # Export list Errors caused tool to abort. The error 'Export list says it is in the .imp file to be exported, but the symbol can't be found. In proxy_util.c this function is preceeded by: #if APR_HAVE_SYS_UN_H /* TODO: In APR 2.x: Extend apr_sockaddr_t to possibly be a path !!! */ PROXY_DECLARE(apr_status_t) ap_proxy_connect_uds(apr_socket_t *sock, const char *uds_path, apr_pool_t *p) { In NetWare's case APR_HAVE_SYS_UN_H is 0. The major use of sys/un.h is (AFAIK) defines for (IIRC) Unix sockets, which NetWare never got, but a very abbreviated sys/un.h does exist - Novell never got around to supporting all the features, so it's disabled in APR. OK, understood. In this case I found it best to ad a stub impl for platforms which don't support sys/un.h. The proxy_* symbols not found are (IIRC) due to assumptions made in the awk script that are needed to work for the server proper (ie if one symbol is found assume others also present), but that assumption doesn't work in proxy I found a difference between the proxy hooks for which all three symbols, proxy_hook_xxx, proxy_hook_get_xxx and proxy_run_xxx exist, and those which do only have the run symbol. I then added a marker macro to mod_proxy.h to allow the awk script to distinguish between them. Can you please try again? I'm confident we won't have many more iterations in front of us. Regards, Rainer
health_check for NetWare - httpd-trunk
G/A, Now that the exports are sorted out (Thanks Rainer) can now build the proxy_health_check module for NetWare... Herewith a patch, proxy_hcheck_netware_add.diff to add the nlm to the list of nlm's to build in the /proxy dir: Index: modules/proxy/NWGNUmakefile === --- modules/proxy/NWGNUmakefile (revision 1728785) +++ modules/proxy/NWGNUmakefile (working copy) @@ -161,6 +161,7 @@ $(OBJDIR)/proxyfcgi.nlm \ $(OBJDIR)/proxyscgi.nlm \ $(OBJDIR)/proxyexpress.nlm \ + $(OBJDIR)/proxyhcheck.nlm \ $(OBJDIR)/proxylbm_busy.nlm \ $(OBJDIR)/proxylbm_hb.nlm \ $(OBJDIR)/proxylbm_req.nlm \ and the build module itself: NWGNUproxyhcheck for modules/proxy dir. This builds the nlm without issue using the current httpd-trunk. Please review before commit. Norm Index: modules/proxy/NWGNUmakefile === --- modules/proxy/NWGNUmakefile (revision 1728785) +++ modules/proxy/NWGNUmakefile (working copy) @@ -161,6 +161,7 @@ $(OBJDIR)/proxyfcgi.nlm \ $(OBJDIR)/proxyscgi.nlm \ $(OBJDIR)/proxyexpress.nlm \ + $(OBJDIR)/proxyhcheck.nlm \ $(OBJDIR)/proxylbm_busy.nlm \ $(OBJDIR)/proxylbm_hb.nlm \ $(OBJDIR)/proxylbm_req.nlm \ # # Make sure all needed macro's are defined # # # Get the 'head' of the build environment if necessary. This includes default # targets and paths to tools # ifndef EnvironmentDefined include $(AP_WORK)/build/NWGNUhead.inc endif # # These directories will be at the beginning of the include list, followed by # INCDIRS # XINCDIRS+= \ $(APR)/include \ $(APRUTIL)/include \ $(SRC)/include \ $(STDMOD)/core \ $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ $(EOLIST) # # These defines will come after DEFINES # XDEFINES+= \ $(EOLIST) # # These flags will be added to the link.opt file # XLFLAGS += \ $(EOLIST) # # These values will be appended to the correct variables based on the value of # RELEASE # ifeq "$(RELEASE)" "debug" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "noopt" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif ifeq "$(RELEASE)" "release" XINCDIRS+= \ $(EOLIST) XCFLAGS += \ $(EOLIST) XDEFINES+= \ $(EOLIST) XLFLAGS += \ $(EOLIST) endif # # These are used by the link target if an NLM is being generated # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # NLM_NAME= proxyhcheck # # This is used by the link '-desc ' directive. # If left blank, NLM_NAME will be used. # NLM_DESCRIPTION = Apache $(VERSION_STR) Proxy Health Module # # This is used by the '-threadname' directive. If left blank, # NLM_NAME Thread will be used. # NLM_THREAD_NAME = Prxy Health Module # # If this is specified, it will override VERSION value in # $(AP_WORK)/build/NWGNUenvironment.inc # NLM_VERSION = # # If this is specified, it will override the default of 64K # NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # NLM_EXIT_SYM= # # If this is specified it will be used by the link '-check' directive # NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # XDCDATA = # # If there is an NLM target, put it here # TARGET_nlm = $(OBJDIR)/$(NLM_NAME).nlm # # If there is an LIB target, put it here # TARGET_lib = # # These are the OBJ files needed to create the NLM target above. # Paths must all use the '/' character # FILES_nlm_objs = \ $(OBJDIR)/mod_proxy_hcheck.o \ $(EOLIST) # # These are the LIB files needed to create the NLM target above. # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ $(PRELUDE) \ $(EOLIST) # # These are the modules that the above NLM target depends on to load. # These will be added as a
Re: Proxy_Util needs another export.
G/E Rainer Will test in next 10 minutes or so... The AP_PROXY_DECLARE ones are doable by build/make_nw_export.awk - proxy_* ones I think are trickier. But will advise in < 10 mins. Norm On 5/02/2016 11:23 AM, Rainer Jung wrote: Hi Norm, Am 31.01.2016 um 00:59 schrieb NormW: G'Day, Recent changes to mod_proxy_[connect/wstunnel] prompt another export from proxy_util. Wouldn't an awk script simplify symbol extraction from proxy_util and obviate the need for tweaking manual lists? I added support for proxy to the already existing awk script in trunk. Any chance you can try building trunk using those changes, so I can propose for backport? The changes were: - r1728569: add some missing symbols to the old style makefile - r1728572: add PROXY_DECLARE_DATA - r1728573: add support for proxy to build/make_nw_export.awk - r1728574: use the awk script instead of the hand written list Regards, Rainer
Re: Proxy_Util needs another export.
G/ Rainer, In summary, the only /proxy/ nlm to build was serf. (The good news) All other proxy items failed with: ### mwccnlm Compiler: # In: mod_proxy.h #From: mod_proxy_wstunnel.c # - # 95: PROXY_DECLARE_DATA extern proxy_hcmethods_t proxy_hcmethods[]; # Error: ^^ # declaration syntax error # Too many errors printed, aborting program This may be due to a limitation of the compiler due to the version of C that is supported by it or some other issue with the macro expansion. Under the default c-flags the compiler will abort on the first error, other issues MAY be lurking further thru the compile process. Norm On 5/02/2016 11:23 AM, Rainer Jung wrote: Hi Norm, Am 31.01.2016 um 00:59 schrieb NormW: G'Day, Recent changes to mod_proxy_[connect/wstunnel] prompt another export from proxy_util. Wouldn't an awk script simplify symbol extraction from proxy_util and obviate the need for tweaking manual lists? I added support for proxy to the already existing awk script in trunk. Any chance you can try building trunk using those changes, so I can propose for backport? The changes were: - r1728569: add some missing symbols to the old style makefile - r1728572: add PROXY_DECLARE_DATA - r1728573: add support for proxy to build/make_nw_export.awk - r1728574: use the awk script instead of the hand written list Regards, Rainer
Re: Proxy_Util needs another export.
G/E 9.51pm in Oz Updated http-trunk (last mod_proxy.h by Yann) and now get the following: Building D:/Projects/svn/httpd-trunk/modules/proxy Calling NWGNUproxy GEN obj_release/proxy_cc.opt CC mod_proxy.c CC proxy_util.c CC ../arch/netware/libprews.c GEN obj_release/proxy_link.opt LINK obj_release/proxy.nlm ### mwldnlm Linker Error: # Undefined symbol: ap_proxy_connect_uds in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_create_req in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_detach_backend in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_fixups in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_get_create_req in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_get_detach_backend in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_get_fixups in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_get_request_status in # Export list ### mwldnlm Linker Error: # Undefined symbol: proxy_hook_request_status in # Export list Errors caused tool to abort. The error 'Export list says it is in the .imp file to be exported, but the symbol can't be found. In proxy_util.c this function is preceeded by: #if APR_HAVE_SYS_UN_H /* TODO: In APR 2.x: Extend apr_sockaddr_t to possibly be a path !!! */ PROXY_DECLARE(apr_status_t) ap_proxy_connect_uds(apr_socket_t *sock, const char *uds_path, apr_pool_t *p) { In NetWare's case APR_HAVE_SYS_UN_H is 0. The major use of sys/un.h is (AFAIK) defines for (IIRC) Unix sockets, which NetWare never got, but a very abbreviated sys/un.h does exist - Novell never got around to supporting all the features, so it's disabled in APR. The proxy_* symbols not found are (IIRC) due to assumptions made in the awk script that are needed to work for the server proper (ie if one symbol is found assume others also present), but that assumption doesn't work in proxy On 5/02/2016 11:23 AM, Rainer Jung wrote: Hi Norm, Am 31.01.2016 um 00:59 schrieb NormW: G'Day, Recent changes to mod_proxy_[connect/wstunnel] prompt another export from proxy_util. Wouldn't an awk script simplify symbol extraction from proxy_util and obviate the need for tweaking manual lists? I added support for proxy to the already existing awk script in trunk. Any chance you can try building trunk using those changes, so I can propose for backport? The changes were: - r1728569: add some missing symbols to the old style makefile - r1728572: add PROXY_DECLARE_DATA - r1728573: add support for proxy to build/make_nw_export.awk - r1728574: use the awk script instead of the hand written list Regards, Rainer
Re: Proxy_Util needs another export.
Na! Thanks for your efforts!; the 'problem' has been skipped over for years. Will 'update' and see what happens. FTM. Norm On 6/02/2016 11:38 AM, Rainer Jung wrote: Hi Norm, Am 05.02.2016 um 22:58 schrieb NormW: G/M Rainer, I'd say this is getting much closer now: The only symbol that doesn't seem to make it into mod_proxy's export list is 'proxy_module' itself. The build log for /proxy looks like: It should make it to mod_proxy's export list, because like in other cases it is now part of modules/proxy/NWGNUproxy: ... FILES_nlm_exports = \ @mod_proxy.imp \ proxy_module \ $(EOLIST) ... But it seems it doesn't get imported correctly and I hope I understood why. In the proxy case, all accompanying mod_proxy_xxx modules need access to the proxy_module symbol to read their config. In the case of other modules from which I borrowed the export/import style, like cache and dav, the accompanying modules do not need to access cache_module or dav_module. So that symbol wasn't imported. Since we need it for all proxy modules, I fixed the awk script to add it and hope this works now. I agree, we are getting closer :) Thanks a bunch for your patience. Rainer
Re: Proxy_Util needs another export.
G/A Rainer JACKPOT! Building D:/Projects/svn/httpd-trunk/modules/proxy Calling NWGNUproxy GEN obj_release/proxy_cc.opt CC mod_proxy.c CC proxy_util.c CC ../arch/netware/libprews.c GEN obj_release/proxy_link.opt LINK obj_release/proxy.nlm Calling NWGNUproxycon GEN obj_release/proxycon_cc.opt CC mod_proxy_connect.c GEN obj_release/proxycon_link.opt LINK obj_release/proxycon.nlm Calling NWGNUproxyftp GEN obj_release/proxyftp_cc.opt CC mod_proxy_ftp.c CC ../arch/netware/libprews.c GEN obj_release/proxyftp_link.opt LINK obj_release/proxyftp.nlm Calling NWGNUproxyhtp GEN obj_release/proxyhtp_cc.opt CC mod_proxy_http.c CC ../arch/netware/libprews.c GEN obj_release/proxyhtp_link.opt LINK obj_release/proxyhtp.nlm Calling NWGNUproxybalancer GEN obj_release/proxybalancer_cc.opt CC mod_proxy_balancer.c GEN obj_release/proxybalancer_link.opt LINK obj_release/proxybalancer.nlm Calling NWGNUproxyajp GEN obj_release/proxyajp_cc.opt CC mod_proxy_ajp.c CC ajp_header.c CC ajp_msg.c CC ajp_link.c CC ajp_utils.c CC ../arch/netware/libprews.c GEN obj_release/proxyajp_link.opt LINK obj_release/proxyajp.nlm Calling NWGNUproxyfcgi GEN obj_release/proxyfcgi_cc.opt CC mod_proxy_fcgi.c CC ../arch/netware/libprews.c GEN obj_release/proxyfcgi_link.opt LINK obj_release/proxyfcgi.nlm Calling NWGNUproxyscgi GEN obj_release/proxyscgi_cc.opt CC mod_proxy_scgi.c GEN obj_release/proxyscgi_link.opt LINK obj_release/proxyscgi.nlm Calling NWGNUproxyexpress GEN obj_release/proxyexpress_cc.opt CC mod_proxy_express.c GEN obj_release/proxyexpress_link.opt LINK obj_release/proxyexpress.nlm Calling NWGNUproxylbm_busy GEN obj_release/proxylbm_busy_cc.opt CC balancers/mod_lbmethod_bybusyness.c GEN obj_release/proxylbm_busy_link.opt LINK obj_release/proxylbm_busy.nlm Calling NWGNUproxylbm_hb GEN obj_release/proxylbm_hb_cc.opt CC balancers/mod_lbmethod_heartbeat.c GEN obj_release/proxylbm_hb_link.opt LINK obj_release/proxylbm_hb.nlm Calling NWGNUproxylbm_req GEN obj_release/proxylbm_req_cc.opt CC balancers/mod_lbmethod_byrequests.c GEN obj_release/proxylbm_req_link.opt LINK obj_release/proxylbm_req.nlm Calling NWGNUproxylbm_traf GEN obj_release/proxylbm_traf_cc.opt CC balancers/mod_lbmethod_bytraffic.c GEN obj_release/proxylbm_traf_link.opt LINK obj_release/proxylbm_traf.nlm Calling NWGNUproxywstunnel GEN obj_release/proxywstunnel_cc.opt CC mod_proxy_wstunnel.c GEN obj_release/proxywstunnel_link.opt LINK obj_release/proxywstunnel.nlm Congrats, Norm On 6/02/2016 11:38 AM, Rainer Jung wrote: Hi Norm, Am 05.02.2016 um 22:58 schrieb NormW: G/M Rainer, I'd say this is getting much closer now: The only symbol that doesn't seem to make it into mod_proxy's export list is 'proxy_module' itself. The build log for /proxy looks like: It should make it to mod_proxy's export list, because like in other cases it is now part of modules/proxy/NWGNUproxy: ... FILES_nlm_exports = \ @mod_proxy.imp \ proxy_module \ $(EOLIST) ... But it seems it doesn't get imported correctly and I hope I understood why. In the proxy case, all accompanying mod_proxy_xxx modules need access to the proxy_module symbol to read their config. In the case of other modules from which I borrowed the export/import style, like cache and dav, the accompanying modules do not need to access cache_module or dav_module. So that symbol wasn't imported. Since we need it for all proxy modules, I fixed the awk script to add it and hope this works now. I agree, we are getting closer :) Thanks a bunch for your patience. Rainer
More_ exports_for_ mod_proxy3.
Sigh, This adds the exports for proxy_hcmethods and ap_proxy_transfer_between_connections Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy(revision 1728550) +++ modules/proxy/NWGNUproxy(working copy) @@ -256,6 +256,7 @@ @echo $(DL)# Exports of mod_proxy$(DL)> $@ @echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@ @echo $(DL) proxy_module,$(DL)>> $@ + @echo $(DL) proxy_hcmethods,$(DL)>> $@ @echo $(DL) proxy_hook_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_post_request,$(DL)>> $@ @@ -321,6 +322,7 @@ @echo $(DL) ap_proxy_strncpy,$(DL)>> $@ @echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@ @echo $(DL) ap_proxy_trans_match,$(DL)>> $@ + @echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@ @echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@ @echo $(DL) ap_proxy_worker_name,$(DL)>> $@ @echo $(DL) ap_proxyerror$(DL)>> $@ Regards Norm Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy (revision 1728550) +++ modules/proxy/NWGNUproxy (working copy) @@ -256,6 +256,7 @@ @echo $(DL)# Exports of mod_proxy$(DL)> $@ @echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@ @echo $(DL) proxy_module,$(DL)>> $@ + @echo $(DL) proxy_hcmethods,$(DL)>> $@ @echo $(DL) proxy_hook_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@ @echo $(DL) proxy_hook_get_post_request,$(DL)>> $@ @@ -321,6 +322,7 @@ @echo $(DL) ap_proxy_strncpy,$(DL)>> $@ @echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@ @echo $(DL) ap_proxy_trans_match,$(DL)>> $@ + @echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@ @echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@ @echo $(DL) ap_proxy_worker_name,$(DL)>> $@ @echo $(DL) ap_proxyerror$(DL)>> $@
Proxy_Util needs another export.
G'Day, Recent changes to mod_proxy_[connect/wstunnel] prompt another export from proxy_util. Wouldn't an awk script simplify symbol extraction from proxy_util and obviate the need for tweaking manual lists? Diff also attached. Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy(revision 1727764) +++ modules/proxy/NWGNUproxy(working copy) @@ -274,6 +274,7 @@ @echo $(DL) proxy_run_scheme_handler,$(DL)>> $@ @echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@ @echo $(DL) ap_proxy_backend_broke,$(DL)>> $@ + @echo $(DL) ap_proxy_buckets_lifetime_transform$(DL)>> $@ @echo $(DL) ap_proxy_c2hex,$(DL)>> $@ @echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@ @echo $(DL) ap_proxy_canonenc,$(DL)>> $@ Could someone vet the proposed patch and apply as time allows. Thx. Norm Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy (revision 1727764) +++ modules/proxy/NWGNUproxy (working copy) @@ -274,6 +274,7 @@ @echo $(DL) proxy_run_scheme_handler,$(DL)>> $@ @echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@ @echo $(DL) ap_proxy_backend_broke,$(DL)>> $@ + @echo $(DL) ap_proxy_buckets_lifetime_transform$(DL)>> $@ @echo $(DL) ap_proxy_c2hex,$(DL)>> $@ @echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@ @echo $(DL) ap_proxy_canonenc,$(DL)>> $@
Additional export from proxy_util for NetWare build.
Greetings all for 2016. Can someone with commit clout add the attached diff to httpd-trunk please? TIA, Norm Index: modules/proxy/NWGNUproxy === --- modules/proxy/NWGNUproxy (revision 1726451) +++ modules/proxy/NWGNUproxy (working copy) @@ -312,6 +312,7 @@ @echo $(DL) ap_proxy_set_wstatus,$(DL)>> $@ @echo $(DL) ap_proxy_share_balancer,$(DL)>> $@ @echo $(DL) ap_proxy_share_worker,$(DL)>> $@ + @echo $(DL) ap_proxy_show_hcmethod,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_connection_cleanup,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_disable,$(DL)>> $@ @echo $(DL) ap_proxy_ssl_enable,$(DL)>> $@
Re: Additional export from proxy_util for NetWare build.
On 24/01/2016 8:48 AM, Jim Jagielski wrote: SendingNWGNUproxy Transmitting file data .done Committing transaction... Committed revision 1726453. All done! Thx! Thank You! N.
Re: Latest httpd-trunk updates....
On 25/10/2015 8:36 AM, Eric Covener wrote: On Sat, Oct 24, 2015 at 5:21 PM, NormW <no...@gknw.net> wrote: # 289: if (conf->fully_qualify_redirect_url != AP_CORE_CONFIG_ON) { Fixed now, didn't get rebuilt when I changed the name in the header. As of this morning (Monday 8.35 AEST) see a clean build of httpd-trunk, includng nghttp2 1.4.0. Norm
Latest httpd-trunk updates....
G/M from D/U, Compiling httpd-trunk this morning after an svn update and note the followings...umoops CC server/protocol.c ### mwccnlm Compiler: #File: server\protocol.c # -- #2007: for (int i = 0; i < conf->protocols->nelts; ++i) { # Error: ^^^ # expression syntax error # Too many errors printed, aborting program User break, cancelled... D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:125: recipe for target 'obj_release/protocol.o' failed make: *** [obj_release/protocol.o] Error 2 CC server/provider.c [snip,snip,snip...] CC server/util_script.c ### mwccnlm Compiler: #File: server\util_script.c # - # 289: if (conf->fully_qualify_redirect_url != AP_CORE_CONFIG_ON) { # Error:^^ # 'fully_qualify_redirect_url' is not a struct/union/class member # Too many errors printed, aborting program The protocol.c oops needs the int i predeclared before the for-loop, the util_script.c is a bit more obscure. HTH, Norm
Re: A small wrinkle in latest r1707735 update to httpd-trunk\modules\http2\h2_util.c
On 11/10/2015 4:45 AM, Stefan Eissing wrote: Ok, will add that. This is only in trunk. 2.4.x should compile for you. Correct. Norm. Am 10.10.2015 um 13:31 schrieb NormW <no...@gknw.net>: H, CC h2_worker.c CC h2_workers.c CC mod_http2.c GEN obj_release/mod_http2_link.opt LINK obj_release/mod_http2.nlm ### mwldnlm Linker Error: # Undefined symbol: APR_BUCKET_IS_MMAP in # h2_util.o In apr-util\include\apr_buckets.h: #if APR_HAS_MMAP /** * Determine if a bucket is a MMAP bucket * @param e The bucket to inspect * @return true or false */ #define APR_BUCKET_IS_MMAP(e)((e)->type == _bucket_type_mmap) #endif :-( MMAP is (sadly) not a feature of NetWare. If the http2 experts assert the entire http2 module is a dud without MMAP support, I am not in a position or mind to oppose dropping NetWare 'support' for http2 entirely. Alternatively, something like this in h2_util.c MAY be good enough : } ++ #if APR_HAS_MMAP else if (APR_BUCKET_IS_MMAP(b)) { btype = "mmap"; } ++ #endif Norm
A small wrinkle in latest r1707735 update to httpd-trunk\modules\http2\h2_util.c
H, CC h2_worker.c CC h2_workers.c CC mod_http2.c GEN obj_release/mod_http2_link.opt LINK obj_release/mod_http2.nlm ### mwldnlm Linker Error: # Undefined symbol: APR_BUCKET_IS_MMAP in # h2_util.o In apr-util\include\apr_buckets.h: #if APR_HAS_MMAP /** * Determine if a bucket is a MMAP bucket * @param e The bucket to inspect * @return true or false */ #define APR_BUCKET_IS_MMAP(e)((e)->type == _bucket_type_mmap) #endif :-( MMAP is (sadly) not a feature of NetWare. If the http2 experts assert the entire http2 module is a dud without MMAP support, I am not in a position or mind to oppose dropping NetWare 'support' for http2 entirely. Alternatively, something like this in h2_util.c MAY be good enough : } ++ #if APR_HAS_MMAP else if (APR_BUCKET_IS_MMAP(b)) { btype = "mmap"; } ++ #endif Norm
nghttp2 1.3.0 Build failure on GNUC macro now fixed
FYI, nghttp2 1.3.0 build failure on a GNUC-specific macro has been replaced by more generic C in nghttp2 source and should be available in the next release. Cheers, N.
Re: r1701005 httpd-trunk\server\protocols.c
On 4/09/2015 5:02 PM, Gregg Smith wrote: On 9/3/2015 9:23 PM, NormW wrote: On 4/09/2015 9:05 AM, Yann Ylavic wrote: On Fri, Sep 4, 2015 at 12:52 AM, NormW <no...@gknw.net> wrote: Hi again, Pushing passed previous problem, now arrive at: D:\Projects\svn\httpd-trunk\server>svn diff Index: protocol.c === --- protocol.c (revision 1701142) +++ protocol.c (working copy) @@ -1981,10 +1981,10 @@ server_rec *s, apr_array_header_t *choices) { +apr_array_header_t *proposals; apr_pool_t *pool = r? r->pool : c->pool; core_server_config *conf = ap_get_core_module_config(s->module_config); const char *protocol = NULL, *existing = ap_get_protocol(c);; -apr_array_header_t *proposals; Hm, aren't there other/many places in the httpd code where non initialized variables are declared after the initialized ones? I am hoping my compiler is at least consistent! Not sure of what the rules are well enough to be an expert. I know Windows can be as pedantic as mine. See if Gregg asks for a similar change first, just to be sure. Norm No it does not build on VC9 as is. .\server\protocol.c(1987) : error C2143: syntax error : missing ';' before 'type' .\server\protocol.c(1998) : error C2065: 'proposals' : undeclared identifier But fresh eyes see the ;; on the end of line 1986 const char *protocol = NULL, *existing = ap_get_protocol(c);; Why this trips our compilers I have no idea but one ; should be sufficient. fixed in r1701165 Works also for me; apologies for the red herring - likely to do with operating a computer before the first coffee of the day - never noticed the ';;' either. Norm
r1701005 httpd-trunk\ssl\ssl_engine_kernel.c
Hi, Now seeing this: #File: ssl_engine_kernel.c # #2215: client_protos); # Error: ^ # illegal implicit conversion from 'const unsigned char *' to # 'const char *' HTH, Norm
r1701005 httpd-trunk\server\protocols.c
Hi again, Pushing passed previous problem, now arrive at: D:\Projects\svn\httpd-trunk\server>svn diff Index: protocol.c === --- protocol.c (revision 1701142) +++ protocol.c (working copy) @@ -1981,10 +1981,10 @@ server_rec *s, apr_array_header_t *choices) { +apr_array_header_t *proposals; apr_pool_t *pool = r? r->pool : c->pool; core_server_config *conf = ap_get_core_module_config(s->module_config); const char *protocol = NULL, *existing = ap_get_protocol(c);; -apr_array_header_t *proposals; if (APLOGcdebug(c)) { const char *p = apr_array_pstrcat(pool, conf->protocols, ','); After a while it becomes second nature I believe. Regards, Norm
Re: r1701005 httpd-trunk\server\protocols.c
On 4/09/2015 9:05 AM, Yann Ylavic wrote: On Fri, Sep 4, 2015 at 12:52 AM, NormW <no...@gknw.net> wrote: Hi again, Pushing passed previous problem, now arrive at: D:\Projects\svn\httpd-trunk\server>svn diff Index: protocol.c === --- protocol.c (revision 1701142) +++ protocol.c (working copy) @@ -1981,10 +1981,10 @@ server_rec *s, apr_array_header_t *choices) { +apr_array_header_t *proposals; apr_pool_t *pool = r? r->pool : c->pool; core_server_config *conf = ap_get_core_module_config(s->module_config); const char *protocol = NULL, *existing = ap_get_protocol(c);; -apr_array_header_t *proposals; Hm, aren't there other/many places in the httpd code where non initialized variables are declared after the initialized ones? I am hoping my compiler is at least consistent! Not sure of what the rules are well enough to be an expert. I know Windows can be as pedantic as mine. See if Gregg asks for a similar change first, just to be sure. Norm
r1700777 - h2_stream.c
hi, If not mistaken, on the latest httpd-trunk\modules\http2 update: D:\Projects\svn\httpd-trunk\modules\http2>svn diff Index: h2_session.c === --- h2_session.c(revision 1700915) +++ h2_session.c(working copy) @@ -259,8 +259,9 @@ const nghttp2_frame *frame, void *userp) { /* This starts a new stream. */ +int rv; (void)ngh2; -int rv = stream_open((h2_session *)userp, frame->hd.stream_id); +rv = stream_open((h2_session *)userp, frame->hd.stream_id); if (rv != NGHTTP2_ERR_CALLBACK_FAILURE) { /* on_header_cb or on_frame_recv_cb will dectect that stream does not exist and submit RST_STREAM. */ Otherwise compiles fine. Norm
nghttp2 1.3.0 Released, but...
Hi, I don't have a GitHub acct so hope no one will mind too much if I mention a couple of issues with the latest release of nghttp2 in the hope someone reading this and having a stake in http2 might be able to get something done about them; Compiling : nghttp2_stream.c ..\lib\nghttp2_stream.c:36: declaration syntax error ..\lib\nghttp2_stream.c:36: undefined identifier 'nghttp2__mptr' ..\lib\nghttp2_stream.c:37: declaration syntax error ..\lib\nghttp2_stream.c:37: undefined identifier 'nghttp2__mptr' ..\lib\nghttp2_stream.c:861: declaration syntax error ..\lib\nghttp2_stream.c:861: undefined identifier 'nghttp2__mptr' All three compilers I have find an issue starting at line 36, and this has been around for a few releases: --- nghttp2_submit.c.orig 2015-07-18 01:28:25.0 +1000 +++ nghttp2_submit.c2015-07-23 09:11:07.703125000 +1000 @@ -155,7 +155,7 @@ attach_stream); } -int32_t ghnttp2_submit_trailer(nghttp2_session *session, int32_t stream_id, +int nghttp2_submit_trailer(nghttp2_session *session, int32_t stream_id, const nghttp2_nv *nva, size_t nvlen) { return submit_headers_shared_nva(session, NGHTTP2_FLAG_END_STREAM, stream_id, NULL, nva, nvlen, NULL, NULL, 0); The header prototype has tp2_submit_trailer() defined as int. HTH, Norm
Re: modules\http2 - structure initializing.
Yann, Sorry for the delay, In simple terms, no; it is obvious the compiler (other people use other names) just sees that as a single item list, and complains about the syntax, regardless of how many items are in the list. To be honest up to this point the compiler has been able to build everything (including all of httpd-trunk), and I proposed the small variations suggested in the diff on the grounds I (and evidently a few others) thought the suggested format was clearer. However, it is not MY intention to limit in any way the functionality of tomorrows software solely so NetWare can make some show of trying to keep up. I've no idea how much more coding is needed for your project, and it may be that the next change or the 100th from now will be beyond the capabilities of what tools I have to use, and the race will be over for both the horse and the rider. Code as you see fit and if it eventuates that NetWare can't keep up, there's a lot of others who will. Regards, Norm On 27/08/2015 8:29 PM, Yann Ylavic wrote: Hi, On Wed, Aug 26, 2015 at 12:53 AM, NormW no...@gknw.net wrote: Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }. I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it. Does it accept x = {0} still? Regards, Yann.
Re: modules\http2 - H2Engine directive?
Good evening, Just a 'guess' Use a Protocols directive in one vhost that doesn't have h2 and dirivitives Norm On 27/08/2015 6:22 PM, jean-frederic clere wrote: On 08/24/2015 10:06 AM, Stefan Eissing wrote: Ni Norm, yes, I removed it last week If I want on VirtualHost with h2 support and another one without how should I do that? (that is for demo purpose) Cheers Jean-Frederic
Re: modules\http2 - structure initializing.
G/Morning I think, As Bill correctly guesses in a following mail, 'my' OS is NetWare and it's the standard compiler GK has been using for years to build Apache releases. And that (Metrowerks CW) (AFAIK) is a C89 legend. As I noted in my mail, I would hardly expect to hold back tomorrows http/2 protocol for so dated a horse as NetWare, and if you introduced coding or functions that NetWare's compiler doesn't support then it's 'game-over' for the old war horse as far as http2 is concerned. For the moment however I merely suggest an opinion that initializing structures via a list of individual assignments is a better form to read the code than what is used at present, and a small, almost irrelevant side effect of which is that, for now at least, my compiler can keep building http2 for NetWare, with no functional change to the code. Regards, Norm On 27/08/2015 1:26 AM, Stefan Eissing wrote: Hi Norm, I think these type of assignments are part of the C90 standard. I am not sure we want to support a compiler that cannot cope with that, but I may be to green to know that. What platform is this on exactly? //Stefan Am 26.08.2015 um 00:53 schrieb NormW no...@gknw.net: G/Morning, Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }. I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it. However, I find the 'list' method less easier to 'read' as the struct elements are not 'visible', and one has to locate the struct definition itself to see what is being set to what. The method as illustrated by the patch is clearer (to my mind) and not affected by the order of the elements within the primary structure. Lastly I noticed at least one case recently where my diff 'simplified' because a struct was changed to the _suggested_ method, with the primary struct being created by a memset(); perhaps that's a similar change needed in these cases also? Regards, Norm cw_reqd_chgs.diff green/bytes GmbH Hafenweg 16, 48155 Münster, Germany Phone: +49 251 2807760. Amtsgericht Münster: HRB5782
Re: modules\http2 - structure initializing.
Whinnnie! (eq Equine 'Thanks') On 27/08/2015 7:31 AM, Stefan Eissing wrote: I will apply the proposed change tomorrow. keep the old horse happy. //stefan Am 26.08.2015 um 23:18 schrieb NormW no...@gknw.net: G/Morning I think, As Bill correctly guesses in a following mail, 'my' OS is NetWare and it's the standard compiler GK has been using for years to build Apache releases. And that (Metrowerks CW) (AFAIK) is a C89 legend. As I noted in my mail, I would hardly expect to hold back tomorrows http/2 protocol for so dated a horse as NetWare, and if you introduced coding or functions that NetWare's compiler doesn't support then it's 'game-over' for the old war horse as far as http2 is concerned. For the moment however I merely suggest an opinion that initializing structures via a list of individual assignments is a better form to read the code than what is used at present, and a small, almost irrelevant side effect of which is that, for now at least, my compiler can keep building http2 for NetWare, with no functional change to the code. Regards, Norm On 27/08/2015 1:26 AM, Stefan Eissing wrote: Hi Norm, I think these type of assignments are part of the C90 standard. I am not sure we want to support a compiler that cannot cope with that, but I may be to green to know that. What platform is this on exactly? //Stefan Am 26.08.2015 um 00:53 schrieb NormW no...@gknw.net: G/Morning, Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }. I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it. However, I find the 'list' method less easier to 'read' as the struct elements are not 'visible', and one has to locate the struct definition itself to see what is being set to what. The method as illustrated by the patch is clearer (to my mind) and not affected by the order of the elements within the primary structure. Lastly I noticed at least one case recently where my diff 'simplified' because a struct was changed to the _suggested_ method, with the primary struct being created by a memset(); perhaps that's a similar change needed in these cases also? Regards, Norm cw_reqd_chgs.diff green/bytes GmbH Hafenweg 16, 48155 Münster, Germany Phone: +49 251 2807760. Amtsgericht Münster: HRB5782
modules\http2 - structure initializing.
G/Morning, Herewith an svn diff that implements line-by-line initialization of three structures (no idea if there's a technical term for it) in place of the list method now used, e.g struct x = { , , , }. I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list method, whereas the method portrayed in the diff is totally acceptable to it. However, I find the 'list' method less easier to 'read' as the struct elements are not 'visible', and one has to locate the struct definition itself to see what is being set to what. The method as illustrated by the patch is clearer (to my mind) and not affected by the order of the elements within the primary structure. Lastly I noticed at least one case recently where my diff 'simplified' because a struct was changed to the _suggested_ method, with the primary struct being created by a memset(); perhaps that's a similar change needed in these cases also? Regards, Norm Index: h2_mplx.c === --- h2_mplx.c (revision 1697659) +++ h2_mplx.c (working copy) @@ -436,7 +436,12 @@ } status = apr_thread_mutex_lock(m-lock); if (APR_SUCCESS == status) { -update_ctx ctx = { cb, cb_ctx, 0 }; + +update_ctx ctx; +ctx.cb = cb; +ctx.cb_ctx = cb_ctx; +ctx.streams_updated = 0; + status = APR_EAGAIN; h2_io_set_iter(m-stream_ios, update_window, ctx); Index: h2_session.c === --- h2_session.c (revision 1697659) +++ h2_session.c (working copy) @@ -852,7 +852,11 @@ AP_DEBUG_ASSERT(session); if (!h2_stream_set_is_empty(session-streams) session-mplx !session-aborted) { -resume_ctx ctx = { session, 0 }; + +resume_ctx ctx; +ctx.session = session; +ctx.resume_count = 0; + /* Resume all streams where we have data in the out queue and * which had been suspended before. */ h2_stream_set_iter(session-streams, resume_on_data, ctx); Index: h2_response.c === --- h2_response.c (revision 1697659) +++ h2_response.c (working copy) @@ -202,7 +202,14 @@ { size_t n; h2_ngheader *h; -nvctx_t ctx = { NULL, 1, strlen(status) + 1, 0, NULL, pool }; + +nvctx_t ctx; +ctx.nv = NULL; +ctx.nvlen= 1; +ctx.nvstrlen = strlen(status) + 1; +ctx.offset = 0; +ctx.strbuf = NULL; +ctx.pool = pool; apr_table_do(count_header, ctx, header, NULL);
Re: modules\http2 - H2Engine directive?
Hi Stefan, Thanks for the clarification! A text search for 'H2Engine' shows it in a number of other languages under '.\manual\mod\directives', 'manual\mod\quickreference' and in '\docs\conf\extra\httpd-h2.conf.in'. HTH, Thanks, Norm On 24/08/2015 6:06 PM, Stefan Eissing wrote: Ni Norm, yes, I removed it last week and though I removed it from the doc xml as well. Seems I forgot the Readme. Will fix soon. Sorry for any confusion. //Stefan Am 24.08.2015 um 05:53 schrieb NormW no...@gknw.net: Hi, The 'H2Engine on' directive is identified in the Readme.h2 as the most important, but except for a number of 'Directive' lists and a h2.conf template file. this appears to be unknown within the http2 C source or the 'manual'(en) reference for mod_h2. Is this directive something of the past or future perhaps? Regards, Norm green/bytes GmbH Hafenweg 16, 48155 Münster, Germany Phone: +49 251 2807760. Amtsgericht Münster: HRB5782
modules\http2 - H2Engine directive?
Hi, The 'H2Engine on' directive is identified in the Readme.h2 as the most important, but except for a number of 'Directive' lists and a h2.conf template file. this appears to be unknown within the http2 C source or the 'manual'(en) reference for mod_h2. Is this directive something of the past or future perhaps? Regards, Norm
httpd-trunk\modules\http2\h2_session.c Mystery
Hi, My compiler (no names) is vastly smarter than I at understanding C, but I can't tell if the following 'error' is drivel or just over my head; #File: h2_session.c # - # 512:nghttp2_session_callbacks_set_on_invalid_frame_recv_callback(*pcb, on_invalid_frame_recv_cb) # Error: ^ # illegal implicit conversion # from 'int(struct nghttp2_session *, const union *, @enum$24h2_session_c, void *)' # to 'int (*)(struct nghttp2_session *, const union *, int, void *)' Beyond this one 'blip', mod_h2 builds without issue, even the static build/link of nghttp2 lib. TIA, Norm
Re: httpd-trunk\modules\http2\h2_session.c Mystery
On 20/08/2015 8:39 PM, Yann Ylavic wrote: Hi, On Thu, Aug 20, 2015 at 11:56 AM, NormW no...@gknw.net wrote: #File: h2_session.c # - # 512:nghttp2_session_callbacks_set_on_invalid_frame_recv_callback(*pcb, on_invalid_frame_recv_cb) # Error: ^ # illegal implicit conversion # from 'int(struct nghttp2_session *, const union *, @enum$24h2_session_c, void *)' # to 'int (*)(struct nghttp2_session *, const union *, int, void *)' It seems that the nghttp2_on_invalid_frame_recv_callback type requires an int for its error parameter, not a nghttp2_error enum. Does the attached patch helps? Regards, Yann. G/Evening from Down Under, Yes! Whatever the patch did (not yet looked) it worked; h2_session.c (and mod_h2 now compile/link without error. If my compiler was a person I'd have to shout it a beer. Regards, Thanks for solving my Mystery. Norm
C89-ify a recent change to h2_io_set.c
G/Evening (Is here) A very small tweak is proposed for: httpd-trunk\modules\http2\h2_io_set.c to keep the C89-ers in their seats. The svn diff looks like: Index: modules/http2/h2_io_set.c === --- modules/http2/h2_io_set.c (revision 1696548) +++ modules/http2/h2_io_set.c (working copy) @@ -67,12 +67,13 @@ /* we keep the array sorted by id, so lookup can be done * by bsearch. */ +h2_io **ps; h2_io key; h2_io *pkey = key; memset(key, 0, sizeof(key)); key.id = stream_id; -h2_io **ps = bsearch(pkey, sp-list-elts, sp-list-nelts, +ps = bsearch(pkey, sp-list-elts, sp-list-nelts, sp-list-elt_size, h2_stream_id_cmp); return ps? *ps : NULL; } I won't bore anyone who can follow that module with a patch. Cheers, Norm
Building for NetWare /1 - For Your Consideration
Hi, The NetWare Gurus seem to be on holidays. For your consideration: Index: modules/cache/NWGNUsocachshmcb === --- modules/cache/NWGNUsocachshmcb (revision 1692595) +++ modules/cache/NWGNUsocachshmcb (working copy) @@ -28,6 +28,7 @@ $(SRC)/include \ $(SERVER)/mpm/netware \ $(NWOS) \ + $(STDMOD)/generators \ $(EOLIST) # Needed so NWGNUsocachshmcb can find mod_status.h Index: modules/cache/NWGNUsocachdbm === --- modules/cache/NWGNUsocachdbm(revision 1692595) +++ modules/cache/NWGNUsocachdbm(working copy) @@ -28,6 +28,7 @@ $(SRC)/include \ $(SERVER)/mpm/netware \ $(NWOS) \ + $(STDMOD)/generators \ $(EOLIST) # Needed so NWGNUsocachdbm can find mod_status.h Index: modules/dav/fs/mod_dav_fs.c === --- modules/dav/fs/mod_dav_fs.c (revision 1692595) +++ modules/dav/fs/mod_dav_fs.c (working copy) @@ -17,7 +17,9 @@ #include httpd.h #include http_config.h #include apr_strings.h +#if !defined(WIN32) !defined(NETWARE) #include ap_config_auto.h +#endif #include mod_dav.h #include repos.h Needed so mod_dav_fs.c doesn't try to load ap_config_auto.h. AFAICT also not needed by WIN32. Give me a prod if this format isn't useful. Norm
httpd-trunk httpd.h APR_-AP_?
G/M, Any chance these should be AP_DECLARE? APR_DECLARE(void) ap_random_insecure_bytes(void *buf, apr_size_t size); ... APR_DECLARE(apr_uint32_t) ap_random_pick(apr_uint32_t min, apr_uint32_t max); Norm
CT oops?
G/E, httpd-trunk\modules\ssl\ssl_engine_config.c (164): mctx-pkp-cert_file = NULL; mctx-pkp-cert_path = NULL; mctx-pkp-ca_cert_file = NULL mctx-pkp-certs = NULL; mctx-pkp-ca_certs = NULL; Seems like there is a need of punctuation... This one is trickier: httpd-trunk\modules\ssl\mod_ssl.c (175): ### mwccnlm Compiler: #File: mod_ssl.c # -- # 175: ProxyMachineCertificateChainFile, ssl_cmd_SSLProxyMachineCertificateChainFile, ((void *) 0), 128, TAKE1, SSL Proxy: file # Error: ^ # undefined identifier 'ssl_cmd_SSLProxyMachineCertificateChainFile' an extern perhaps? N.
Re: CT oops?
On 24/08/2011 6:42 PM, Plüm, Rüdiger, VF-Group wrote: Fixed in r1161002. Fixed in r1161005 Regards Rüdiger Confirm httpd-trunk now builds for NetWare without issue. Thx. Norm
Re: mod_ssl in trunk with OpenSSL 0.9.7 as a minimum requirement?
On 11/08/2011 3:12 PM, Kaspar Brand wrote: Hi Gün, perhaps we should just break compilation with a check in mod_ssl like: #if OPENSSL_VERSION_NUMBER 0x0090700f #error mod_ssl requires at least OpenSSL version 0.9.7f! #endif That's also fine with me, yes. Generally speaking, are there any rules for handling this sort of version checks in httpd code (and when aborting with #error is acceptable)? No idea if a 'rule' but a search of httpd-trunk *.c for #error shows 12 'samples' that might be worth a look. (Nit: 0x0090700f is actually 0.9.7, 0.9.7f would be 0x0090706f.) BTW. I admit that I did only tested compile, not runtime; though if there are issues introduced with your changes they should come up with all platforms, or? I would expect so, yes - as long as OpenSSL behaves the same on NetWare as on other platforms. Kaspar Norm
Re: Please test the build
Hi, NetWare builds httpd-trunk against apr14/apu13 as in days past without any blips, including the LDAP-related pieces. Good job! Norm On 25/07/2011 5:51 AM, Stefan Fritsch wrote: Please test the recent changes of the module selections, especially if you use non-Linux Unix flavors and/or non-default library locations. Don't forget to do ./buildconf first. The ldap revert also affects Windows/Netware. It would be nice if someone could confirm that mod_ldap+mod_authnz_ldap build correctly on these platforms.
ldap functions in/to apr
Hi, A build of util_ldap showed 14 function calls that go direct to the NetWare ldap library, and was given a mind that all these needed was adding apr_ to the front and a wrapper in apu. However, discovered that there exists already an apr_ldap_set_option() which is decidedly different from ldap_set_option()... which way ahead? The 'missing' functions (for NetWare anyway): ldap_compare_s ldap_count_entries ldap_err2string ldap_first_entry ldap_get_dn ldap_get_values ldap_memfree ldap_msgfree ldap_parse_result ldap_result ldap_search_ext_s ldap_set_option ldap_simple_bind ldap_unbind_s ldap_value_free Are these the only ones needed? Just these would get NetWare building directly to APU ldap at least. Any others would be a bonus. Regards, Norm