I've tried the build again with the proper fix in place and all is well for me: mod_md now reports three missing prereqs:
-- mod_md was requested but couldn't be built due to a missing prerequisite (OPENSSL_FOUND) -- mod_md was requested but couldn't be built due to a missing prerequisite (CURL_FOUND) -- mod_md was requested but couldn't be built due to a missing prerequisite (JANSSON_FOUND) The complete cmake output is attached in case it is of interest. This was using 3.15.2 - the latest version. Thanks for fixing this. On Fri, 30 Aug 2019 at 09:32, William A Rowe Jr <[email protected]> wrote: > However, it fixed it by ignoring most of the troubles... I have my IP > unblocked, > so I'm able to get some further fixes in, I added the iterator, confirmed > the > newest fixes and have committed to trunk and 2.4.x. Steve, please retest > and > report back? > > There is no such thing as a _102 openssl result macro, that was a big > whoops, > since we never tested for that. And won't need to, ever again... deleted > the > openssl rev test (who would build such an unsupported ancient thing > anyways? > Shame on them.) And immediately failed on curl and jansson but for two > different > reasons - reminding us that copy-paste isn't always our friend. > > cmake has *long* had a FIND_PACKAGE for curl. Not so much for jansson. > But we didn't follow the missing logic for jansson or for curl, and didn't > invoke > the find facility for curl, so both were AWOL. Didn't matter with my hack, > since > we didn't look for them to be found, and the way I build, all the libs and > includes > are found during the compilation at the anticipated paths... all but the > libcurl_imp.lib which the existing cmake logic overlooked. Easily > hardcoded as; > cmake $(CMAKE_DEFAULTS) > -D CMAKE_INSTALL_PREFIX=$(DESTDIR) \ > -D CURL_LIBRARIES=$(DESTDIR)/lib/libcurl_imp.lib > > The lesson in this is that there is more to script than what was copied, > it was no different than asking configure.in to work given only half the > necessary lines of configure script, and there are one of two different > patterns that must be followed; either a FIND_PACKAGE implementation > is available in common flavors of cmake for a specific package, or is not. > I guess the ask is not to commit untested build changes, well at least > don't backport them. > > The current state of CMake against 3.14 carries the following warnings, > I may or may not get around to addressing some or all of these, if anyone > else is looking for some low hanging fruit... > > > CMake Warning (dev) at CMakeLists.txt:563 (ELSEIF): > Policy CMP0054 is not set: Only interpret if() arguments as variables or > keywords when unquoted. Run "cmake --help-policy CMP0054" for policy > details. Use the cmake_policy command to set the policy and suppress > this > warning. > > Quoted variables like "i" will no longer be dereferenced when the policy > is > set to NEW. Since the policy is not set the OLD behavior will be used. > This warning is for project developers. Use -Wno-dev to suppress it. > > CMake Warning (dev) at CMakeLists.txt:615 (GET_TARGET_PROPERTY): > Policy CMP0026 is not set: Disallow use of the LOCATION target property. > Run "cmake --help-policy CMP0026" for policy details. Use the > cmake_policy > command to set the policy and suppress this warning. > > The LOCATION property should not be read from target "gen_test_char". > Use > the target name directly with add_custom_command, or use the generator > expression $<TARGET_FILE>, as appropriate. > > This warning is for project developers. Use -Wno-dev to suppress it. > > CMake Warning (dev) at CMakeLists.txt:120 (ELSEIF): > Policy CMP0054 is not set: Only interpret if() arguments as variables or > keywords when unquoted. Run "cmake --help-policy CMP0054" for policy > details. Use the cmake_policy command to set the policy and suppress > this > warning. > > Quoted variables like "i" will no longer be dereferenced when the policy > is > set to NEW. Since the policy is not set the OLD behavior will be used. > Call Stack (most recent call first): > CMakeLists.txt:757 (GET_MOD_ENABLE_RANK) > This warning is for project developers. Use -Wno-dev to suppress it. > > CMake Warning (dev) at CMakeLists.txt:766 (IF): > Policy CMP0054 is not set: Only interpret if() arguments as variables or > keywords when unquoted. Run "cmake --help-policy CMP0054" for policy > details. Use the cmake_policy command to set the policy and suppress > this > warning. > > Quoted variables like "APR_HAS_LDAP" will no longer be dereferenced when > the policy is set to NEW. Since the policy is not set the OLD behavior > will be used. > This warning is for project developers. Use -Wno-dev to suppress it. > > > > > > > > > > On Fri, Aug 30, 2019 at 2:24 AM Steve Hay <[email protected]> > wrote: > >> Thanks to you both - that was indeed the trouble, and the fix has >> sorted it out for me. >> >> On Fri, 30 Aug 2019 at 08:16, Stefan Eissing >> <[email protected]> wrote: >> > >> > Added to trunk in r1866119. >> > Merged to 2.4.x in r1866121. >> > >> > Thanks for this, Bill! >> > >> > > Am 29.08.2019 um 19:05 schrieb William A Rowe Jr <[email protected] >> >: >> > > >> > > Index: httpd-2.x/CMakeLists.txt >> > > =================================================================== >> > > --- httpd-2.x/CMakeLists.txt (revision 1866089) >> > > +++ httpd-2.x/CMakeLists.txt (working copy) >> > > @@ -508,7 +508,9 @@ >> > > modules/lua/lua_vmprep.c modules/lua/lua_dbd.c >> > > ) >> > > SET(mod_lua_requires LUA51_FOUND) >> > > -SET(mod_md_requires OPENSSL_FOUND CURL_FOUND >> JANSSON_FOUND HAVE_OPENSSL_102) >> > > +# TODO: _requires does not currently iterate a list, substitute the >> following once it does; >> > > +# SET(mod_md_requires OPENSSL_FOUND CURL_FOUND >> JANSSON_FOUND HAVE_OPENSSL_102) >> > > +SET(mod_md_requires CURL_FOUND) >> > > SET(mod_md_extra_includes ${OPENSSL_INCLUDE_DIR} >> ${CURL_INCLUDE_DIR} ${JANSSON_INCLUDE_DIR}) >> > > SET(mod_md_extra_libs ${OPENSSL_LIBRARIES} >> ${CURL_LIBRARIES} ${JANSSON_LIBRARIES} mod_watchdog) >> > > SET(mod_md_extra_sources >> > > @@ -763,6 +765,7 @@ >> > > ${CMAKE_CURRENT_SOURCE_DIR}/modules/session >> > > ${CMAKE_CURRENT_SOURCE_DIR}/modules/ssl >> > > ${CMAKE_CURRENT_SOURCE_DIR}/server >> > > + ${CMAKE_CURRENT_SOURCE_DIR}/server/mpm/winnt >> > > ${APR_INCLUDE_DIR} >> > > ${PCRE_INCLUDE_DIR} >> > > ) >> > >> >
CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases. -- The C compiler identification is MSVC 19.21.27702.2 -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019 16.1/Professional/VC/Tools/MSVC/14.21.27702/bin/Hostx64/x64/cl.exe -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019 16.1/Professional/VC/Tools/MSVC/14.21.27702/bin/Hostx64/x64/cl.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR) -- Could NOT find Lua51 (missing: LUA_LIBRARIES LUA_INCLUDE_DIR) -- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) -- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) -- -- Summary of feature detection: -- -- LIBXML2_FOUND ............ : FALSE -- LUA51_FOUND .............. : FALSE -- NGHTTP2_FOUND ............ : FALSE -- OPENSSL_FOUND ............ : FALSE -- ZLIB_FOUND ............... : FALSE -- BROTLI_FOUND ............. : FALSE -- CURL_FOUND ............... : FALSE -- JANSSON_FOUND ............ : FALSE -- APR_HAS_LDAP ............. : TRUE -- APR_HAS_XLATE ............ : FALSE -- APU_HAVE_CRYPTO .......... : FALSE -- CMake Warning (dev) at CMakeLists.txt:563 (ELSEIF): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Quoted variables like "i" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:615 (GET_TARGET_PROPERTY): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "gen_test_char". Use the target name directly with add_custom_command, or use the generator expression $<TARGET_FILE>, as appropriate. This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:120 (ELSEIF): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Quoted variables like "i" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. Call Stack (most recent call first): CMakeLists.txt:757 (GET_MOD_ENABLE_RANK) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:766 (IF): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Quoted variables like "APR_HAS_LDAP" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. This warning is for project developers. Use -Wno-dev to suppress it. -- mod_socache_dc was requested but couldn't be built due to a missing prerequisite (AN_UNIMPLEMENTED_SUPPORT_LIBRARY_REQUIREMENT) -- mod_brotli was requested but couldn't be built due to a missing prerequisite (BROTLI_FOUND) -- mod_charset_lite was requested but couldn't be built due to a missing prerequisite (APR_HAS_XLATE) -- mod_deflate was requested but couldn't be built due to a missing prerequisite (ZLIB_FOUND) -- mod_proxy_html was requested but couldn't be built due to a missing prerequisite (LIBXML2_FOUND) -- mod_xml2enc was requested but couldn't be built due to a missing prerequisite (LIBXML2_FOUND) -- mod_http2 was requested but couldn't be built due to a missing prerequisite (NGHTTP2_FOUND) -- mod_lua was requested but couldn't be built due to a missing prerequisite (LUA51_FOUND) -- mod_md was requested but couldn't be built due to a missing prerequisite (OPENSSL_FOUND) -- mod_md was requested but couldn't be built due to a missing prerequisite (CURL_FOUND) -- mod_md was requested but couldn't be built due to a missing prerequisite (JANSSON_FOUND) -- mod_proxy_http2 was requested but couldn't be built due to a missing prerequisite (NGHTTP2_FOUND) -- mod_session_crypto was requested but couldn't be built due to a missing prerequisite (APU_HAVE_CRYPTO) -- mod_ssl was requested but couldn't be built due to a missing prerequisite (OPENSSL_FOUND) -- -- -- Apache httpd configuration summary: -- -- Build type ...................... : RelWithDebInfo -- Install .pdb (if available)...... : ON -- Install manual .................. : ON -- Install prefix .................. : D:/Dev/Temp/mp2/apache24 -- C compiler ...................... : C:/Program Files (x86)/Microsoft Visual Studio/2019 16.1/Professional/VC/Tools/MSVC/14.21.27702/bin/Hostx64/x64/cl.exe -- APR include directory ........... : D:/Dev/Temp/mp2/apache24/include -- APR libraries ................... : D:/Dev/Temp/mp2/apache24/lib/libapr-1.lib;D:/Dev/Temp/mp2/apache24/lib/libaprutil-1.lib;D:/Dev/Temp/mp2/apache24/lib/apr_ldap-1.lib -- OpenSSL include directory ....... : OPENSSL_INCLUDE_DIR-NOTFOUND -- OpenSSL libraries ............... : SSL_EAY_LIBRARY-NOTFOUND;LIB_EAY_LIBRARY-NOTFOUND -- PCRE include directory .......... : D:/Dev/Temp/mp2/apache24/include -- PCRE libraries .................. : D:/Dev/Temp/mp2/apache24/lib/pcre.lib -- libxml2 iconv prereq include dir. : -- libxml2 iconv prereq libraries .. : -- Brotli include directory......... : D:/Dev/Temp/mp2/apache24/include -- Brotli libraries ................ : -- Curl include directory........... : CURL_INCLUDE_DIR-NOTFOUND -- Jansson libraries ............... : -- Extra include directories ....... : -- Extra compile flags ............. : -- Extra libraries ................. : -- Modules built and loaded: -- mod_access_compat -- mod_allowmethods -- mod_auth_basic -- mod_auth_digest -- mod_auth_form -- mod_authn_anon -- mod_authn_core -- mod_authn_dbd -- mod_authn_dbm -- mod_authn_file -- mod_authn_socache -- mod_authnz_fcgi -- mod_authnz_ldap -- mod_authz_core -- mod_authz_dbd -- mod_authz_dbm -- mod_authz_groupfile -- mod_authz_host -- mod_authz_owner -- mod_authz_user -- mod_isapi -- mod_cache -- mod_cache_disk -- mod_cache_socache -- mod_file_cache -- mod_socache_dbm -- mod_socache_memcache -- mod_socache_shmcb -- mod_socache_redis -- mod_heartbeat -- mod_heartmonitor -- mod_macro -- mod_watchdog -- mod_dbd -- mod_dav_fs -- mod_dav_lock -- mod_dav -- mod_bucketeer -- mod_dumpio -- mod_echo -- mod_case_filter -- mod_case_filter_in -- mod_example_hooks -- mod_example_ipc -- mod_buffer -- mod_data -- mod_ext_filter -- mod_filter -- mod_include -- mod_ratelimit -- mod_reflector -- mod_reqtimeout -- mod_request -- mod_sed -- mod_substitute -- mod_asis -- mod_autoindex -- mod_cgi -- mod_info -- mod_status -- mod_mime -- mod_ldap -- mod_log_config -- mod_log_debug -- mod_log_forensic -- mod_logio -- mod_actions -- mod_alias -- mod_dir -- mod_imagemap -- mod_negotiation -- mod_rewrite -- mod_speling -- mod_userdir -- mod_vhost_alias -- mod_cern_meta -- mod_env -- mod_expires -- mod_headers -- mod_ident -- mod_mime_magic -- mod_remoteip -- mod_setenvif -- mod_unique_id -- mod_usertrack -- mod_version -- mod_lbmethod_bybusyness -- mod_lbmethod_byrequests -- mod_lbmethod_bytraffic -- mod_lbmethod_heartbeat -- mod_proxy_ajp -- mod_proxy_balancer -- mod_proxy -- mod_proxy_connect -- mod_proxy_express -- mod_proxy_fcgi -- mod_proxy_ftp -- mod_proxy_http -- mod_proxy_hcheck -- mod_proxy_scgi -- mod_proxy_wstunnel -- mod_session -- mod_session_cookie -- mod_session_dbd -- mod_slotmem_plain -- mod_slotmem_shm -- mod_dialup -- mod_optional_fn_export -- mod_optional_fn_import -- mod_optional_hook_export -- mod_optional_hook_import -- Modules built but not loaded: -- Modules not built: -- mod_socache_dc -- mod_brotli -- mod_charset_lite -- mod_deflate -- mod_proxy_html -- mod_xml2enc -- mod_http2 -- mod_lua -- mod_md -- mod_proxy_http2 -- mod_session_crypto -- mod_ssl -- Configuring done -- Generating done -- Build files have been written to: D:/Dev/Temp/mp2/httpd-2.4.41
