You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2018/09/12 13:56:21 UTC

svn commit: r1840688 [3/37] - in /httpd/sandbox/httpd-2.4.x-trunk-delta: ./ build/ build/rpm/ build/win32/ docs/ docs/conf/ docs/conf/extra/ docs/log-message-tags/ docs/man/ docs/man/tr/ include/ modules/ modules/aaa/ modules/apreq/ modules/arch/unix/ ...

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/CMakeLists.txt
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/CMakeLists.txt?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/CMakeLists.txt (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/CMakeLists.txt Wed Sep 12 13:56:17 2018
@@ -64,6 +64,12 @@ ELSE()
   SET(default_brotli_libraries)
 ENDIF()
 
+IF(EXISTS "${CMAKE_INSTALL_PREFIX}/lib/check.lib")
+  SET(default_check_libraries "${CMAKE_INSTALL_PREFIX}/lib/check.lib" "${CMAKE_INSTALL_PREFIX}/lib/compat.lib")
+ELSE()
+  SET(default_check_libraries)
+ENDIF()
+
 SET(APR_INCLUDE_DIR       "${CMAKE_INSTALL_PREFIX}/include" CACHE STRING "Directory with APR[-Util] include files")
 SET(APR_LIBRARIES         ${default_apr_libraries}       CACHE STRING "APR libraries to link with")
 SET(NGHTTP2_INCLUDE_DIR   "${CMAKE_INSTALL_PREFIX}/include" CACHE STRING "Directory with NGHTTP2 include files within nghttp2 subdirectory")
@@ -74,6 +80,8 @@ SET(LIBXML2_ICONV_INCLUDE_DIR     ""
 SET(LIBXML2_ICONV_LIBRARIES       ""                     CACHE STRING "iconv libraries to link with for libxml2")
 SET(BROTLI_INCLUDE_DIR    "${CMAKE_INSTALL_PREFIX}/include" CACHE STRING "Directory with include files for Brotli")
 SET(BROTLI_LIBRARIES      ${default_brotli_libraries}    CACHE STRING "Brotli libraries to link with")
+SET(CHECK_INCLUDE_DIR     "${CMAKE_INSTALL_PREFIX}/include" CACHE STRING "Directory with include files for Check")
+SET(CHECK_LIBRARIES       "${default_check_libraries}"   CACHE STRING "Check libraries to link with")
 # end support library configuration
 
 # Misc. options
@@ -175,6 +183,18 @@ ELSE()
   SET(APR_HAS_LDAP FALSE)
 ENDIF()
 
+# See if we have OpenSSL 1.0.2
+SET(HAVE_OPENSSL_102 FALSE)
+IF(OPENSSL_FOUND)
+  STRING(REGEX REPLACE "^1\\.([0-9]+)\\.[0-9]+" "\\1" minor_ver ${OPENSSL_VERSION})
+  STRING(REGEX REPLACE "^1\\.[0-9]+\\.([0-9]+)" "\\1" patch_ver ${OPENSSL_VERSION})
+  IF(${minor_ver} GREATER "0")
+    SET(HAVE_OPENSSL_102 TRUE)
+  ELSEIF(${patch_ver} GREATER "1")
+    SET(HAVE_OPENSSL_102 TRUE)
+  ENDIF()
+ENDIF()
+
 # See if nghttp2 exists in a configured or defaulted location
 SET(NGHTTP2_FOUND TRUE)
 IF(EXISTS "${NGHTTP2_INCLUDE_DIR}/nghttp2/nghttp2.h")
@@ -199,6 +219,18 @@ ELSE()
   SET(BROTLI_FOUND FALSE)
 ENDIF()
 
+# See if we have Check
+SET(CHECK_FOUND TRUE)
+IF (EXISTS "${CHECK_INCLUDE_DIR}/check.h")
+  FOREACH(onelib ${CHECK_LIBRARIES})
+    IF(NOT EXISTS "${onelib}")
+      SET(CHECK_FOUND FALSE)
+    ENDIF()
+  ENDFOREACH()
+ELSE()
+  SET(CHECK_FOUND FALSE)
+ENDIF()
+
 MESSAGE(STATUS "")
 MESSAGE(STATUS "Summary of feature detection:")
 MESSAGE(STATUS "")
@@ -208,6 +240,7 @@ MESSAGE(STATUS "NGHTTP2_FOUND ..........
 MESSAGE(STATUS "OPENSSL_FOUND ............ : ${OPENSSL_FOUND}")
 MESSAGE(STATUS "ZLIB_FOUND ............... : ${ZLIB_FOUND}")
 MESSAGE(STATUS "BROTLI_FOUND ............. : ${BROTLI_FOUND}")
+MESSAGE(STATUS "CHECK_FOUND .............. : ${CHECK_FOUND}")
 MESSAGE(STATUS "APR_HAS_LDAP ............. : ${APR_HAS_LDAP}")
 MESSAGE(STATUS "APR_HAS_XLATE ............ : ${APR_HAS_XLATE}")
 MESSAGE(STATUS "APU_HAVE_CRYPTO .......... : ${APU_HAVE_CRYPTO}")
@@ -236,6 +269,7 @@ MESSAGE(STATUS "")
 #
 SET(MODULE_LIST
   "modules/aaa/mod_access_compat+A+mod_access compatibility"
+  "modules/aaa/mod_allowhandlers+I+restrict allowed handlers"
   "modules/aaa/mod_allowmethods+I+restrict allowed HTTP methods"
   "modules/aaa/mod_auth_basic+A+basic authentication"
   "modules/aaa/mod_auth_digest+I+RFC2617 Digest authentication"
@@ -255,6 +289,7 @@ SET(MODULE_LIST
   "modules/aaa/mod_authz_host+A+host-based authorization control"
   "modules/aaa/mod_authz_owner+I+'require file-owner' authorization control"
   "modules/aaa/mod_authz_user+A+'require user' authorization control"
+  "modules/apreq/mod_apreq+i+Apache Request Filter"
   "modules/arch/win32/mod_isapi+I+isapi extension support"
   "modules/cache/mod_cache+I+dynamic file caching.  At least one storage management module (e.g. mod_cache_disk) is also necessary."
   "modules/cache/mod_cache_disk+I+disk caching module"
@@ -264,6 +299,7 @@ SET(MODULE_LIST
   "modules/cache/mod_socache_dc+O+distcache small object cache provider"
   "modules/cache/mod_socache_memcache+I+memcache small object cache provider"
   "modules/cache/mod_socache_shmcb+I+ shmcb small object cache provider"
+  "modules/cache/mod_socache_redis+I+redis small object cache provider"
   "modules/cluster/mod_heartbeat+I+Generates Heartbeats"
   "modules/cluster/mod_heartmonitor+I+Collects Heartbeats"
   "modules/core/mod_macro+I+Define and use macros in configuration files"
@@ -274,6 +310,7 @@ SET(MODULE_LIST
   "modules/dav/main/mod_dav+I+WebDAV protocol handling."
   "modules/debugging/mod_bucketeer+O+buckets manipulation filter.  Useful only for developers and testing purposes."
   "modules/debugging/mod_dumpio+I+I/O dump filter"
+  "modules/debugging/mod_firehose+O+Firehose dump filter"
   "modules/echo/mod_echo+O+ECHO server"
   "modules/examples/mod_case_filter+O+Example uppercase conversion filter"
   "modules/examples/mod_case_filter_in+O+Example uppercase conversion input filter"
@@ -340,10 +377,10 @@ SET(MODULE_LIST
   "modules/proxy/mod_proxy_fcgi+I+Apache proxy FastCGI module.  Requires and is enabled by --enable-proxy."
   "modules/proxy/mod_proxy_ftp+I+Apache proxy FTP module.  Requires and is enabled by --enable-proxy."
   "modules/proxy/mod_proxy_http+I+Apache proxy HTTP module.  Requires and is enabled by --enable-proxy."
-  "modules/proxy/mod_proxy_hcheck+I+Apache proxy health check module.  Requires and is enabled by --enable-proxy."
   "modules/proxy/mod_proxy_scgi+I+Apache proxy SCGI module.  Requires and is enabled by --enable-proxy."
   "modules/proxy/mod_proxy_wstunnel+I+Apache proxy Websocket Tunnel module.  Requires and is enabled by --enable-proxy."
   "modules/http2/mod_proxy_http2+i+Apache proxy HTTP/2 module.  Requires --enable-proxy."
+  "modules/proxy/mod_serf+O+Reverse proxy module using Serf"
   "modules/session/mod_session+I+session module"
   "modules/session/mod_session_cookie+I+session cookie module"
   "modules/session/mod_session_crypto+i+session crypto module"
@@ -351,11 +388,13 @@ SET(MODULE_LIST
   "modules/slotmem/mod_slotmem_plain+I+slotmem provider that uses plain memory"
   "modules/slotmem/mod_slotmem_shm+I+slotmem provider that uses shared memory"
   "modules/ssl/mod_ssl+i+SSL/TLS support"
+  "modules/ssl/mod_ssl_ct+O+Certificate Transparency support (requires OpenSSL >= 1.0.2)"
   "modules/test/mod_dialup+O+rate limits static files to dialup modem speeds"
   "modules/test/mod_optional_fn_export+O+example optional function exporter"
   "modules/test/mod_optional_fn_import+O+example optional function importer"
   "modules/test/mod_optional_hook_export+O+example optional hook exporter"
   "modules/test/mod_optional_hook_import+O+example optional hook importer"
+  "modules/test/mod_policy+I+HTTP protocol compliance filters"
 )
 
 # Track which modules actually built have APIs to link against.
@@ -453,7 +492,6 @@ SET(mod_proxy_connect_extra_libs     mod
 SET(mod_proxy_express_extra_libs     mod_proxy)
 SET(mod_proxy_fcgi_extra_libs        mod_proxy)
 SET(mod_proxy_ftp_extra_libs         mod_proxy)
-SET(mod_proxy_hcheck_extra_libs      mod_proxy)
 SET(mod_proxy_http_extra_libs        mod_proxy)
 SET(mod_proxy_html_requires          LIBXML2_FOUND)
 IF(LIBXML2_FOUND)
@@ -498,6 +536,16 @@ SET(mod_ssl_extra_sources
   modules/ssl/ssl_util.c             modules/ssl/ssl_util_ocsp.c
   modules/ssl/ssl_util_ssl.c         modules/ssl/ssl_util_stapling.c
 )
+SET(mod_ssl_ct_requires              HAVE_OPENSSL_102)
+IF(OPENSSL_FOUND)
+  SET(mod_ssl_ct_extra_includes        ${OPENSSL_INCLUDE_DIR})
+  SET(mod_ssl_ct_extra_libs            ${OPENSSL_LIBRARIES})
+ENDIF()
+SET(mod_ssl_ct_extra_sources
+  modules/ssl/ssl_ct_log_config.c
+  modules/ssl/ssl_ct_sct.c
+  modules/ssl/ssl_ct_util.c
+)
 SET(mod_status_extra_defines         STATUS_DECLARE_EXPORT)
 SET(mod_watchdog_install_lib 1)
 SET(mod_xml2enc_requires             LIBXML2_FOUND)
@@ -587,12 +635,22 @@ SET(HTTPD_MAIN_SOURCES
 SET(LIBHTTPD_SOURCES
   ${extra_builtin_modules}
   ${PROJECT_BINARY_DIR}/modules.c
+  server/apreq_cookie.c
+  server/apreq_error.c
+  server/apreq_module.c
+  server/apreq_module_cgi.c
+  server/apreq_module_custom.c
+  server/apreq_param.c
+  server/apreq_parser.c
+  server/apreq_parser_header.c
+  server/apreq_parser_multipart.c
+  server/apreq_parser_urlencoded.c
+  server/apreq_util.c
   modules/arch/win32/mod_win32.c
   modules/core/mod_so.c
   modules/http/byterange_filter.c
   modules/http/chunk_filter.c
   modules/http/http_core.c
-  modules/http/http_etag.c
   modules/http/http_filters.c
   modules/http/http_protocol.c
   modules/http/http_request.c
@@ -621,6 +679,7 @@ SET(LIBHTTPD_SOURCES
   server/util_cfgtree.c
   server/util_cookies.c
   server/util_debug.c
+  server/util_etag.c
   server/util_expr_eval.c
   server/util_expr_parse.c
   server/util_fcgi.c
@@ -802,7 +861,7 @@ SET(install_targets ${install_targets} l
 SET(install_bin_pdb ${install_bin_pdb} $<TARGET_PDB_FILE:libhttpd>)
 TARGET_LINK_LIBRARIES(libhttpd ${EXTRA_LIBS} ${APR_LIBRARIES} ${PCRE_LIBRARIES} ${HTTPD_SYSTEM_LIBS})
 DEFINE_WITH_BLANKS(define_long_name "LONG_NAME" "Apache HTTP Server Core")
-SET_TARGET_PROPERTIES(libhttpd PROPERTIES COMPILE_FLAGS "-DAP_DECLARE_EXPORT ${define_long_name} -DBIN_NAME=libhttpd.dll ${EXTRA_COMPILE_FLAGS}")
+SET_TARGET_PROPERTIES(libhttpd PROPERTIES COMPILE_FLAGS "-DAP_DECLARE_EXPORT -DAPREQ_DECLARE_EXPORT ${define_long_name} -DBIN_NAME=libhttpd.dll ${EXTRA_COMPILE_FLAGS}")
 ADD_DEPENDENCIES(libhttpd test_char_header)
 
 ###########   HTTPD EXECUTABLES   ##########
@@ -850,6 +909,50 @@ IF(OPENSSL_FOUND)
 ENDIF()
 GET_PROPERTY(tmp_includes TARGET ab PROPERTY INCLUDE_DIRECTORIES)
 
+# Unit Test Suite
+IF(CHECK_FOUND)
+  # Get all of the test cases.
+  # XXX Per CMake documentation, if a test case is added or removed we must
+  # re-run CMake due to our use of GLOB. TBD if this tradeoff to have
+  # "plug-and-play" test cases is really worth it.
+  FILE(GLOB httpdunit_cases "${CMAKE_SOURCE_DIR}/test/unit/*.c")
+
+  ADD_EXECUTABLE(httpdunit
+                   test/httpdunit.c
+                   ${httpdunit_cases})
+  SET_TARGET_PROPERTIES(httpdunit PROPERTIES
+                        INCLUDE_DIRECTORIES "${HTTPD_INCLUDE_DIRECTORIES} ${CHECK_INCLUDE_DIR}"
+                        # FIXME why does Check need HAVE_STDINT_H on Windows?
+                        COMPILE_FLAGS "-DHAVE_STDINT_H")
+  TARGET_LINK_LIBRARIES(httpdunit libhttpd ${APR_LIBRARIES} ${CHECK_LIBRARIES})
+
+  # Rules for generating the .tests stubs.
+  FILE(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/httpdunit_gen_stubs.bat"
+                CONTENT "perl \"${CMAKE_SOURCE_DIR}/build/httpdunit_gen_stubs.pl\" < %1 > %2")
+  FILE(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/test/unit")
+
+  FOREACH(case ${httpdunit_cases})
+    STRING(REGEX REPLACE "^${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}"
+                 stub "${case}")
+    STRING(REGEX REPLACE "\\.c$" ".tests"
+                 stub "${stub}")
+
+    ADD_CUSTOM_COMMAND(TARGET httpdunit
+                       PRE_BUILD
+                       COMMAND "${CMAKE_BINARY_DIR}/httpdunit_gen_stubs.bat" "\"${case}\"" "\"${stub}\""
+                       BYPRODUCTS "${stub}")
+  ENDFOREACH()
+
+  # Rule for generating the .cases file.
+  FILE(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/httpdunit_gen_cases.bat"
+                CONTENT "type \"${CMAKE_SOURCE_DIR}\"\\test\\unit\\*.c 2>NUL | perl \"${CMAKE_SOURCE_DIR}/build/httpdunit_gen_cases.pl\" --declaration > \"${CMAKE_BINARY_DIR}/test/httpdunit.cases\"
+                         type \"${CMAKE_SOURCE_DIR}\"\\test\\unit\\*.c 2>NUL | perl \"${CMAKE_SOURCE_DIR}/build/httpdunit_gen_cases.pl\" >> \"${CMAKE_BINARY_DIR}/test/httpdunit.cases\"")
+  ADD_CUSTOM_COMMAND(TARGET httpdunit
+                     PRE_BUILD
+                     COMMAND "${CMAKE_BINARY_DIR}/httpdunit_gen_cases.bat"
+                     BYPRODUCTS "${CMAKE_BINARY_DIR}/test/httpdunit.cases")
+ENDIF()
+
 # getting duplicate manifest error with ApacheMonitor
 # ADD_EXECUTABLE(ApacheMonitor support/win32/ApacheMonitor.c support/win32/ApacheMonitor.rc)
 # SET(install_targets ${install_targets} ApacheMonitor)
@@ -874,11 +977,11 @@ SET(rel_runtimedir      "logs")
 SET(rel_sysconfdir      "conf")
 FILE(GLOB_RECURSE conffiles RELATIVE ${CMAKE_SOURCE_DIR}/docs/conf "docs/conf/*")
 FOREACH(template ${conffiles})
-  STRING(REPLACE ".conf.in" ".conf" conf ${template})
+  STRING(REPLACE ".conf.in" ".conf" conf "${template}")
   FILE(READ "docs/conf/${template}" template_text)
     IF(template MATCHES ".conf.in$")
       # substitute @var@/@@var@@ in .conf.in
-      STRING(REPLACE "@@" "@" template_text ${template_text})
+      STRING(REPLACE "@@" "@" template_text "${template_text}")
       STRING(CONFIGURE "${template_text}" template_text @ONLY)
     ENDIF()
   FILE(WRITE ${CMAKE_BINARY_DIR}/conf/original/${conf} "${template_text}")
@@ -911,6 +1014,7 @@ INSTALL(DIRECTORY include/ DESTINATION i
 INSTALL(FILES ${other_installed_h} DESTINATION include)
 INSTALL(FILES ${installed_mod_libs_exps} DESTINATION lib)
 INSTALL(FILES "$<TARGET_LINKER_FILE_DIR:libhttpd>/libhttpd.exp" DESTINATION LIB)
+INSTALL(FILES support/ctlogconfig DESTINATION bin)
 
 IF(INSTALL_MANUAL) # Silly?  This takes a while, and a dev doesn't need it.
   INSTALL(DIRECTORY docs/manual/ DESTINATION manual)
@@ -956,6 +1060,8 @@ MESSAGE(STATUS "  libxml2 iconv prereq i
 MESSAGE(STATUS "  libxml2 iconv prereq libraries .. : ${LIBXML2_ICONV_LIBRARIES}")
 MESSAGE(STATUS "  Brotli include directory......... : ${BROTLI_INCLUDE_DIR}")
 MESSAGE(STATUS "  Brotli libraries ................ : ${BROTLI_LIBRARIES}")
+MESSAGE(STATUS "  Check include directory.......... : ${CHECK_INCLUDE_DIR}")
+MESSAGE(STATUS "  Check libraries ................. : ${CHECK_LIBRARIES}")
 MESSAGE(STATUS "  Extra include directories ....... : ${EXTRA_INCLUDES}")
 MESSAGE(STATUS "  Extra compile flags ............. : ${EXTRA_COMPILE_FLAGS}")
 MESSAGE(STATUS "  Extra libraries ................. : ${EXTRA_LIBS}")

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/INSTALL
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/INSTALL?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/INSTALL (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/INSTALL Wed Sep 12 13:56:17 2018
@@ -5,7 +5,7 @@
   ------------------
 
   For complete installation documentation, see [ht]docs/manual/install.html or
-  http://httpd.apache.org/docs/2.4/install.html
+  http://httpd.apache.org/docs/trunk/install.html
 
      $ ./configure --prefix=PREFIX
      $ make
@@ -17,21 +17,7 @@
               might use "/usr/local/apache2" for PREFIX (without the
               quotes).
 
-            * Consider if you want to use a previously installed APR and
-              APR-Util (such as those provided with many OSes) or if you
-              need to use the APR and APR-Util from the apr.apache.org
-              project. If the latter, download the latest versions and
-              unpack them to ./srclib/apr and ./srclib/apr-util (no
-              version numbers in the directory names) and use
-              ./configure's --with-included-apr option. This is required
-              if you don't have the compiler which the system APR was
-              built with.  It can also be advantageous if you are a
-              developer who will be linking your code with Apache or using
-              a debugger to step through server code, as it removes the
-              possibility of version or compile-option mismatches with APR
-              and APR-Util code. As a convenience, prepackaged source-code
-              bundles of APR and APR-Util are occasionally also provided
-              as a httpd-2.X.X-deps.tar.gz download.
+            * Read the section "APR - Unix" below.
 
             * If you are a developer building Apache directly from
               Subversion, you will need to run ./buildconf before running
@@ -64,15 +50,74 @@
      --enable-rewrite=shared \
      --enable-speling=shared 
 
-  The easiest way to find all of the configuration flags for Apache 2.4
+  The easiest way to find all of the configuration flags for Apache 2.5
   is to run ./configure --help.
 
+  APR - Unix
+  ----------
+
+  httpd trunk (httpd development version 2.5) can use APR trunk (future
+  APR version 2.0) or the combination of the current APR 1.x branch and
+  the current APR-util 1.x branch.  (APR trunk bundles the features in
+  APR-util 1.x.)
+
+  The httpd buildconf step, required when building httpd from Subversion,
+  must have access to the APR source.  The httpd configure step, always
+  required, can configure the APR source in srclib or use a previously-
+  built APR.
+
+  APR (and APR-util if using APR 1.x) can be built with httpd from httpd's
+  srclib directory or can be built separately, prior to building httpd.
+ 
+  Building APR with httpd from httpd's srclib directory is required if
+  you don't have the compiler which the system APR was built with, and it
+  can also be advantageous if you are a developer who will be linking your
+  code with httpd or using a debugger to step through server code, as it
+  removes the possibility of version or compile-option mismatches with
+  APR and APR-util code.
+
+  To use APR trunk in srclib:
+
+    Check out APR trunk in srclib/apr with the following command:
+
+    svn co http://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr
+
+    buildconf will find it automatically.  Use the --with-included-apr
+    argument to httpd configure.
+
+  To use APR 1.x and APR-util 1.x in srclib:
+
+    Check out the current branches as srclib/apr and srclib/apr-util with
+    the following commands:
+
+    svn co http://svn.apache.org/repos/asf/apr/apr/branches/1.5.x srclib/apr
+    svn co http://svn.apache.org/repos/asf/apr/apr-util/branches/1.5.x srclib/apr-util
+
+    buildconf will find them automatically.  Use the --with-included-apr
+    argument to httpd configure.
+
+  To use existing checkouts of APR (and APR-util if using APR 1.x):
+
+    httpd buildconf must have access to the source trees.  Use these arguments
+    to httpd buildconf:
+
+    --with-apr=[path to apr source] --with-apr-util=[path to apr-util source]
+  
+    (Omit --with-apr-util if using APR trunk.)
+
+    httpd configure must have access to a previously build apr.  Use these
+    arguments to httpd configure:
+
+    --with-apr=[path to apr install] --with-apr-util=[path to apr-util install]
+  
+    (Omit --with-apr-util if using APR trunk.)
+
 
   Quick Start - Windows
   ---------------------
 
   For complete documentation, see manual/platform/windows.html.en or
-  <http://httpd.apache.org/docs/2.4/platform/windows.html>
+  <http://httpd.apache.org/docs/trunk/platform/windows.html>
 
 
   Postscript
@@ -81,7 +126,7 @@
   To obtain help with installation problems, please see the resources at
   <http://httpd.apache.org/support.html>
 
-  Thanks for using the Apache HTTP Server, version 2.4.
+  Thanks for using the Apache HTTP Server, version 2.5.
 
                                      The Apache Software Foundation
                                      http://www.apache.org/

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/InstallBin.dsp
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/InstallBin.dsp?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/InstallBin.dsp (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/InstallBin.dsp Wed Sep 12 13:56:17 2018
@@ -33,15 +33,15 @@ CFG=InstallBin - Win32 Debug
 # PROP BASE Intermediate_Dir "Release"
 # PROP BASE Cmd_Line "NMAKE /f InstallBin.mak"
 # PROP BASE Rebuild_Opt "/a"
-# PROP BASE Target_File "\Apache24\bin\httpd.exe"
+# PROP BASE Target_File "\Apache2x\bin\httpd.exe"
 # PROP BASE Bsc_Name "InstallBin.bsc"
 # PROP BASE Target_Dir ""
 # PROP Use_Debug_Libraries 0
 # PROP Output_Dir "Release"
 # PROP Intermediate_Dir "Release"
-# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache24" SHORT=R LONG=Release _install"
+# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2x" SHORT=R LONG=Release _install"
 # PROP Rebuild_Opt ""
-# PROP Target_File "\Apache24\bin\httpd.exe"
+# PROP Target_File "\Apache2x\bin\httpd.exe"
 # PROP Bsc_Name "Browse\httpd.bsc"
 # PROP Target_Dir ""
 
@@ -52,15 +52,15 @@ CFG=InstallBin - Win32 Debug
 # PROP BASE Intermediate_Dir "Debug"
 # PROP BASE Cmd_Line "NMAKE /f InstallBin.mak"
 # PROP BASE Rebuild_Opt "/a"
-# PROP BASE Target_File "\Apache24\bin\httpd.exe"
+# PROP BASE Target_File "\Apache2x\bin\httpd.exe"
 # PROP BASE Bsc_Name "InstallBin.bsc"
 # PROP BASE Target_Dir ""
 # PROP Use_Debug_Libraries 1
 # PROP Output_Dir "Debug"
 # PROP Intermediate_Dir "Debug"
-# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache24" SHORT=D LONG=Debug _install"
+# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2x" SHORT=D LONG=Debug _install"
 # PROP Rebuild_Opt ""
-# PROP Target_File "\Apache24\bin\httpd.exe"
+# PROP Target_File "\Apache2x\bin\httpd.exe"
 # PROP Bsc_Name ""
 # PROP Target_Dir ""
 

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/LAYOUT
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/LAYOUT?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/LAYOUT (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/LAYOUT Wed Sep 12 13:56:17 2018
@@ -1,7 +1,7 @@
 The httpd-2.1 Source Tree LAYOUT
 --------------------------------
 
-./ .................... Top-Level httpd-2.1 Root Directory
+./ .................... Top-Level httpd-2.5 Root Directory
 
   ABOUT_APACHE .......... Overview of the Apache HTTP Server
   LAYOUT ................ This file describing the source tree
@@ -157,12 +157,6 @@ srclib/ ................... Additional L
 
   apr-util/ ................. SEE srclib/apr/LAYOUT
 
-  pcre/ ..................... 
-
-    doc/ ...................... 
-
-    testdata/ ................. 
-
 support/ ................ Sources for Support Binaries
 
   SHA1/ .................. Ancient SHA1 password conversion utilities

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/LICENSE
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/LICENSE?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/LICENSE (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/LICENSE Wed Sep 12 13:56:17 2018
@@ -535,3 +535,5 @@ Thanks to the following people for their
 
 */
 
+
+====================================================================

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/Makefile.in
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/Makefile.in?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/Makefile.in (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/Makefile.in Wed Sep 12 13:56:17 2018
@@ -4,12 +4,12 @@ CLEAN_SUBDIRS = test
 
 PROGRAM_NAME         = $(progname)
 PROGRAM_SOURCES      = modules.c
-PROGRAM_LDADD        = buildmark.o $(HTTPD_LDFLAGS) $(PROGRAM_DEPENDENCIES) $(PCRE_LIBS) $(EXTRA_LIBS) $(AP_LIBS) $(LIBS)
+PROGRAM_LDADD        = buildmark.o $(HTTPD_LDFLAGS) $(PROGRAM_DEPENDENCIES) $(HTTPD_LIBS) $(EXTRA_LIBS) $(AP_LIBS) $(LIBS)
 PROGRAM_PRELINK      = $(COMPILE) -c $(top_srcdir)/server/buildmark.c
 PROGRAM_DEPENDENCIES = \
-  server/libmain.la \
   $(BUILTIN_LIBS) \
   $(MPM_LIB) \
+  server/libmain.la \
   os/$(OS_DIR)/libos.la
 
 sbin_PROGRAMS   = $(PROGRAM_NAME)
@@ -18,13 +18,20 @@ INSTALL_TARGETS = install-conf install-h
 	install-other install-cgi install-include install-suexec install-build \
 	install-man
 
+CLEAN_TARGETS  = check/bin/* check/build/config_vars.mk \
+	check/conf/$(PROGRAM_NAME).conf check/conf/magic check/conf/mime.types \
+	check/conf/extra/* check/include/* $(testcase_OBJECTS) $(testcase_STUBS) \
+	test/httpdunit.cases test/unit/*.o
 DISTCLEAN_TARGETS  = include/ap_config_auto.h include/ap_config_layout.h \
 	include/apache_probes.h \
 	modules.c config.cache config.log config.status build/config_vars.mk \
 	build/rules.mk docs/conf/httpd.conf docs/conf/extra/*.conf shlibtool \
-	build/pkg/pkginfo build/config_vars.sh
+	build/pkg/pkginfo build/config_vars.sh bsd_converted
 EXTRACLEAN_TARGETS = configure include/ap_config_auto.h.in generated_lists \
 	httpd.spec
+PHONY_TARGETS := check check-conf check-dirs check-include unittest-objdir
+
+TESTS = 
 
 include $(top_builddir)/build/rules.mk
 include $(top_srcdir)/build/program.mk
@@ -128,20 +135,18 @@ install-conf:
 	fi
 
 # Create a sanitized config_vars.mk
-build/config_vars.out: build/config_vars.mk
+build/config_vars.out: build/config_vars.mk build/config_vars.sh
 	@$(SHELL) build/config_vars.sh < build/config_vars.mk > build/config_vars.out
 
 install-build: build/config_vars.out
 	@echo Installing build system files 
 	@$(MKINSTALLDIRS) $(DESTDIR)$(installbuilddir) 
-	@for f in $(top_srcdir)/build/*.mk build/*.mk; do \
-	 $(INSTALL_DATA) $$f $(DESTDIR)$(installbuilddir); \
-	done
-	@for f in $(top_builddir)/config.nice \
+	@$(INSTALL_DATA) $(top_srcdir)/build/*.mk build/*.mk \
+		$(DESTDIR)$(installbuilddir)
+	@$(INSTALL_PROGRAM) $(top_builddir)/config.nice \
 		  $(top_srcdir)/build/mkdir.sh \
-		  $(top_srcdir)/build/instdso.sh; do \
-	 $(INSTALL_PROGRAM) $$f $(DESTDIR)$(installbuilddir); \
-	done
+		$(top_srcdir)/build/instdso.sh \
+		$(DESTDIR)$(installbuilddir)
 	@$(INSTALL_DATA) build/config_vars.out $(DESTDIR)$(installbuilddir)/config_vars.mk
 	@rm build/config_vars.out
 
@@ -235,6 +240,7 @@ INSTALL_HEADERS = \
 	$(srcdir)/modules/cache/cache_common.h \
 	$(srcdir)/modules/database/mod_dbd.h \
 	$(srcdir)/modules/dav/main/mod_dav.h \
+	$(srcdir)/modules/http2/mod_http2.h \
 	$(srcdir)/modules/filters/mod_include.h \
 	$(srcdir)/modules/filters/mod_xml2enc.h \
 	$(srcdir)/modules/generators/mod_cgi.h \
@@ -242,6 +248,7 @@ INSTALL_HEADERS = \
 	$(srcdir)/modules/loggers/mod_log_config.h \
 	$(srcdir)/modules/mappers/mod_rewrite.h \
 	$(srcdir)/modules/proxy/mod_proxy.h \
+	$(srcdir)/modules/proxy/mod_serf.h \
         $(srcdir)/modules/session/mod_session.h \
 	$(srcdir)/modules/ssl/mod_ssl.h \
 	$(srcdir)/modules/ssl/mod_ssl_openssl.h \
@@ -250,9 +257,7 @@ INSTALL_HEADERS = \
 install-include:
 	@echo Installing header files
 	@$(MKINSTALLDIRS) $(DESTDIR)$(includedir)
-	@for hdr in $(INSTALL_HEADERS); do \
-	  $(INSTALL_DATA) $$hdr $(DESTDIR)$(includedir); \
-	done
+	@$(INSTALL_DATA) $(INSTALL_HEADERS) $(DESTDIR)$(includedir)
 
 install-man:
 	@echo Installing man pages and online manual
@@ -293,5 +298,191 @@ suexec:
 x-local-distclean:
 	@rm -rf autom4te.cache
 
+update-log-tags update-log-msg-tags:
+	find server modules os -name \*.c|xargs perl \
+		docs/log-message-tags/update-log-msg-tags
+
 # XXX: This looks awfully platform-specific [read: bad form and style]
 include $(top_srcdir)/os/os2/core.mk
+
+#
+# In-tree Testing
+#
+
+# Installs the include/ header files into the ./check/ directory so we can use
+# them during `make check`.
+check-include: override includedir:=$(top_builddir)/check/include
+check-include: install-include
+
+# This is basically the same as install-conf, but we only care about the files
+# necessary to run the test suite, and the LoadModule lines point back to the
+# build tree. Configuration files will be installed to ./check/conf and pointed
+# to by ./check/apxs.
+check-conf:
+	@mkdir -p check/conf/extra; \
+	cd $(top_srcdir)/docs/conf; \
+	for i in mime.types magic; do \
+	    $(INSTALL_DATA) $$i $(top_builddir)/check/conf; \
+	done; \
+	for j in $(top_srcdir)/docs/conf $(top_builddir)/docs/conf ; do \
+	    cd $$j ; \
+	    for i in httpd.conf extra/*.conf; do \
+	        if [ -f $$i ] ; then \
+	        ( \
+	            n_lm=`awk 'BEGIN {n=0} /@@LoadModule@@/ {n+=1} END {print n}' < $$i`; \
+	            if test $$n_lm -eq 0 -o "x$(MPM_MODULES)$(DSO_MODULES)" = "x"; then \
+	                sed -e 's#@@ServerRoot@@#$(top_builddir)/check#g' \
+	                    -e 's#@@Port@@#$(PORT)#g' \
+	                    -e 's#@@SSLPort@@#$(SSLPORT)#g' \
+	                    -e 's#$(prefix)#$(top_builddir)/check#g' \
+	                    -e 's/^#ServerName /ServerName /' \
+	                    -e '/@@LoadModule@@/d' \
+	                    < $$i; \
+	            else \
+	                sed -n -e '/@@LoadModule@@/q' \
+	                    -e 's#@@ServerRoot@@#$(top_builddir)/check#g' \
+	                    -e 's#@@Port@@#$(PORT)#g' \
+	                    -e 's#@@SSLPort@@#$(SSLPORT)#g' \
+	                    -e 's#$(prefix)#$(top_builddir)/check#g' \
+	                    -e 's/^#ServerName /ServerName /' \
+	                    -e 'p' \
+	                    < $$i; \
+	                if echo " $(DSO_MODULES) "|$(EGREP) " cgi " > /dev/null ; then \
+	                    have_cgi="1"; \
+	                else \
+	                    have_cgi="0"; \
+	                fi; \
+	                if echo " $(DSO_MODULES) "|$(EGREP) " cgid " > /dev/null ; then \
+	                    have_cgid="1"; \
+	                else \
+	                    have_cgid="0"; \
+	                fi; \
+	                for j in $(MPM_MODULES) "^EOL^"; do \
+	                    path=$$(find "$(top_builddir)/server" -name "mod_$$j.so"); \
+	                    if test $$j != "^EOL^"; then \
+	                        if echo ",$(ENABLED_MPM_MODULE),"|$(EGREP) ",$$j," > /dev/null ; then \
+	                            loading_disabled=""; \
+	                        else \
+	                            loading_disabled="#"; \
+	                        fi; \
+	                    echo "$${loading_disabled}LoadModule $${j}_module $${path}"; \
+	                fi; \
+	                done; \
+	                for j in $(DSO_MODULES) "^EOL^"; do \
+	                    path=$$(find "$(top_builddir)/modules" -name "mod_$$j.so"); \
+	                    if test $$j != "^EOL^"; then \
+	                        if test $$j = "cgid" -a "$$have_cgi" = "1"; then \
+	                            echo "<IfModule !mpm_prefork_module>"; \
+	                            echo "	LoadModule $${j}_module $${path}"; \
+	                            echo "</IfModule>"; \
+	                        elif test $$j = "cgi" -a "$$have_cgid" = "1"; then \
+	                            echo "<IfModule mpm_prefork_module>"; \
+	                            echo "	LoadModule $${j}_module $${path}"; \
+	                            echo "</IfModule>"; \
+	                        else \
+	                            echo "LoadModule $${j}_module $${path}"; \
+	                        fi; \
+	                    fi; \
+	                done; \
+	                sed -e '1,/@@LoadModule@@/d' \
+	                    -e '/@@LoadModule@@/d' \
+	                    -e 's#@@ServerRoot@@#$(top_builddir)/check#g' \
+	                    -e 's#@@Port@@#$(PORT)#g' \
+	                    -e 's#@@SSLPort@@#$(SSLPORT)#g' \
+	                    -e 's#$(prefix)#$(top_builddir)/check#g' \
+	                    -e 's/^#ServerName /ServerName /' \
+	                    < $$i; \
+	            fi \
+	        ) > $(top_builddir)/check/conf/$$i; \
+	        chmod 0644 $(top_builddir)/check/conf/$$i; \
+	        if [ "$$i" = "httpd.conf" ]; then \
+	            mv "$(top_builddir)/check/conf/$$i" "$(top_builddir)/check/conf/$(PROGRAM_NAME).conf"; \
+	        fi; \
+	        fi; \
+	    done ; \
+	done ;
+
+# Sometimes (e.g. when MPM DSOs are enabled) the test suite runs a full
+# configuration check on our in-tree build. To pass, we have to have all of the
+# correct directories, even though they won't be used.
+check-dirs:
+	@mkdir -p check/htdocs check/logs check/bin
+
+check-binaries: check/bin/apxs check/bin/httpd check/bin/ab
+
+check/bin/httpd:
+	ln -s $(top_builddir)/httpd check/bin/httpd
+
+check/bin/ab:
+	ln -s $(top_builddir)/support/ab check/bin/ab
+
+# A version of apxs with the PREFIX overridden to point inside the install root
+check/bin/apxs:
+	mkdir -p check
+	sed -e 's#$(prefix)#$(top_builddir)/check#g' support/apxs > $@
+	chmod +x $@
+
+# A version of config_vars.mk with PREFIX and SBINDIR and BINDIR overridden.
+check/build/config_vars.mk: build/config_vars.out
+	mkdir -p check/build
+	cp $< $@
+	echo "prefix = $(top_builddir)/check" >> $@
+	echo "sbindir = $(top_builddir)/check/bin" >> $@
+	echo "bindir = $(top_builddir)/check/bin" >> $@
+
+# Generate config & modules etc from scratch any time a header file is
+# touched, so e.g. we don't get MMN mismatch against the modules built
+# in .../c-modules.
+$(TEST_SUITE_LOCATION)/Makefile: $(TEST_SUITE_LOCATION)/Makefile.PL $(INSTALL_HEADERS)
+	cd "$(TEST_SUITE_LOCATION)" && \
+	    perl Makefile.PL -apxs "$(top_builddir)/check/bin/apxs" && \
+	    ./t/TEST -clean && \
+	    ./t/TEST -config
+
+check-make: $(TEST_SUITE_LOCATION)/Makefile
+
+check-no:
+	@echo 'Re-run configure with the --with-test-suite option to enable in-tree tests.'
+	@false
+
+check-yes: check-include check-dirs check-conf check/build/config_vars.mk \
+	check-binaries $(TEST_SUITE_LOCATION)/Makefile
+	cd $(TEST_SUITE_LOCATION) && ./t/TEST $(TESTS)
+
+# Run the Apache::Test suite if it has been configured with --with-test-suite.
+check: check-$(WITH_TEST_SUITE)
+
+#
+# Unit Test Suite
+#
+
+# Make sure the object subdirectories we use exist in the build directory during
+# VPATH builds.
+unittest-objdir:
+	@mkdir -p test/unit
+
+# Normally I don't like wildcard sources, but for tests, autodiscovery is the
+# way to go.
+testcase_SOURCES := $(patsubst $(top_srcdir)/%,%,$(wildcard $(top_srcdir)/test/unit/*.c))
+testcase_OBJECTS := $(testcase_SOURCES:%.c=%.lo)
+testcase_STUBS   := $(testcase_SOURCES:%.c=%.tests)
+
+# Each testcase depends on the source file as well as the autogenerated .tests
+# stub.
+$(testcase_OBJECTS): %.lo: %.c %.tests | unittest-objdir
+
+$(testcase_STUBS): %.tests: %.c
+	$(top_srcdir)/build/httpdunit_gen_stubs.pl < "$<" > "$@"
+
+test/httpdunit.cases: $(testcase_SOURCES) | unittest-objdir
+	cat $^ | $(top_srcdir)/build/httpdunit_gen_cases.pl --declaration > $@
+	cat $^ | $(top_srcdir)/build/httpdunit_gen_cases.pl >> $@
+
+test/httpdunit.lo: test/httpdunit.c test/httpdunit.cases | unittest-objdir
+
+# httpdunit is only added to $(other_targets) if configure detects a working
+# libcheck on the system.
+httpdunit_OBJECTS := test/httpdunit.lo $(testcase_OBJECTS)
+$(httpdunit_OBJECTS): override LTCFLAGS += $(UNITTEST_CFLAGS)
+test/httpdunit: $(httpdunit_OBJECTS) $(PROGRAM_DEPENDENCIES) $(PROGRAM_OBJECTS)
+	$(LINK) $(httpdunit_OBJECTS) $(PROGRAM_OBJECTS) $(UNITTEST_LIBS) $(PROGRAM_LDADD)

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/Makefile.win
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/Makefile.win?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/Makefile.win (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/Makefile.win Wed Sep 12 13:56:17 2018
@@ -9,11 +9,15 @@
 #   _cleanr    - remove (most) files generated by a Release build
 #   _cleand    - remove (most) files generated by a Debug build
 #   _browse    - build the browse info file
+#   _fixshebang - add proper shebang lines to activate installed 
+#                 printenv files
+#                 Note: _fixshebang must be run separately and is not
+#                 run by any of the above install* targets.
 #
 # The following install defaults may be customized;
 #
 #   Option      Default
-#   INSTDIR     /Apache24
+#   INSTDIR     /Apache2x
 #   PORT        80
 #   SSLPORT     443
 #   DOMAINNAME  example.com
@@ -57,15 +61,6 @@ USEMAK=0
 USEDSW=1
 !ENDIF
 
-# APU 1.6 (and up?)
-!IF EXIST("srclib\apr-util\xml\xml.mak")
-EXPAT=xml
-EXPBCK = ..
-!ELSE
-EXPAT=xml\expat\lib
-EXPBCK = ..\..\..
-!ENDIF
-
 default: _buildr
 
 !IF ("$(CTARGET)" == "") && ($(USESLN) == 1)
@@ -111,32 +106,17 @@ UTILDIR=apr-util
 !IF EXIST("srclib\openssl")
 !IF "$(LONG)" == "Debug" && EXIST("srclib\openssl\out32dll.dbg\openssl.exe")
 SSLBIN=out32dll.dbg
-SSLAPP=out32dll.dbg
-SSLCRP=libeay32
-SSLLIB=ssleay32
-!ELSEIF EXIST("srclib\openssl\libcrypto.lib")
-!MESSAGE Building with OpenSSL 1.1.0
-!MESSAGE 
-SSLBIN=.
-SSLAPP=apps
-SSLCRP=libcrypto
-SSLLIB=libssl
-SSLOPT=_HAVE_OSSL110=1
 !ELSE
 SSLBIN=out32dll
-SSLAPP=out32dll
-SSLCRP=libeay32
-SSLLIB=ssleay32
 !ENDIF
 
-
 _tryssl:
 !IF $(USEMAK) == 1
 	cd modules\ssl
-	$(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	$(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..\..
 	cd support
-	$(MAKE) $(MAKEOPT) $(SSLOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	$(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..
 !ELSEIF $(USESLN) == 1
 	devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
@@ -160,6 +140,32 @@ _tryssl:
 !ENDIF
 #     NOT EXIST("srclib\openssl")
 
+!IF EXIST("srclib\serf")
+
+_tryserf:
+!IF $(USEMAK) == 1
+	cd modules\proxy
+	$(MAKE) $(MAKEOPT) -f mod_serf.mak CFG="mod_serf - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	cd ..\..
+!ELSEIF $(USESLN) == 1
+	devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_serf
+!ELSE
+	@msdev $(TLP).dsw /USEENV /MAKE \
+		"mod_serf - Win32 $(LONG)" /NORECURSE $(CTARGET)
+!ENDIF
+
+!ELSE
+#     NOT EXIST("srclib\serf")
+
+_tryserf:
+	@echo -----
+	@echo mod_serf will not build unless libserf.dll is built in srclib\serf
+	@echo For purposes of alpha, libserf release 0.3.0 works, but only with
+	@echo http://people.apache.org/~wrowe/fixserf-win32-0.3.0.patch
+
+!ENDIF
+#     NOT EXIST("srclib\serf")
+
 !IF EXIST("srclib\zlib")
 
 _tryzlib:
@@ -314,7 +320,7 @@ _trymd:
 
 _trymd:
 	@echo -----
-	@echo mod_md will not build unless OpenSSL, Jansson and Curl are built and placed
+	@echo mod_md not build unless OpenSSL, Jansson and Curl are built in placed
 	@echo in srclib. Example: srclib/openssl, srclib/jansson and srclib/curl
 
 !ENDIF
@@ -344,7 +350,7 @@ _trydb:
 
 
 !IF "$(INSTDIR)" == ""
-INSTDIR=\Apache24
+INSTDIR=\Apache2x
 !ENDIF
 !IF "$(DOMAINNAME)" == ""
 DOMAINNAME=example.com
@@ -450,11 +456,11 @@ _build:
 	cd ..
 !ENDIF
 	cd ..\..
-	cd srclib\apr-util\$(EXPAT)
+	cd srclib\apr-util\xml\expat\lib
 	 $(MAKE) $(MAKEOPT) -f xml.mak             CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-	cd $(EXPBCK)
-	 $(MAKE) $(MAKEOPT) $(SSLOPT) -f aprutil.mak         CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-	 $(MAKE) $(MAKEOPT) $(SSLOPT) -f libaprutil.mak      CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	cd ..\..\..
+	 $(MAKE) $(MAKEOPT) -f aprutil.mak         CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f libaprutil.mak      CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ldap
 	 $(MAKE) $(MAKEOPT) -f apr_ldap.mak        CFG="apr_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..
@@ -475,6 +481,7 @@ _build:
 	 $(MAKE) $(MAKEOPT) -f gen_test_char.mak   CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..
 	 $(MAKE) $(MAKEOPT) -f libhttpd.mak        CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f libapreq.mak        CFG="libapreq - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f httpd.mak           CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 # build ldap prior to authnz_ldap
 	cd modules\ldap
@@ -485,6 +492,7 @@ _build:
 	cd ..\..
 	cd modules\aaa
 	 $(MAKE) $(MAKEOPT) -f mod_access_compat.mak CFG="mod_access_compat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f mod_allowhandlers.mak CFG="mod_allowhandlers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_allowmethods.mak CFG="mod_allowmethods - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak  CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
@@ -505,6 +513,9 @@ _build:
 	 $(MAKE) $(MAKEOPT) -f mod_authz_owner.mak CFG="mod_authz_owner - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_authz_user.mak  CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..\..
+	cd modules\apreq
+	 $(MAKE) $(MAKEOPT) -f mod_apreq.mak       CFG="mod_apreq - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	cd ..\..
 	cd modules\arch\win32
 	 $(MAKE) $(MAKEOPT) -f mod_isapi.mak       CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..\..\..
@@ -517,6 +528,7 @@ _build:
 #	 $(MAKE) $(MAKEOPT) -f mod_socache_dc.mak  CFG="mod_socache_dc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_socache_memcache.mak CFG="mod_socache_memcache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_socache_shmcb.mak CFG="mod_socache_shmcb - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f mod_socache_redis.mak CFG="mod_socache_redis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..\..
 	cd modules\core
 	 $(MAKE) $(MAKEOPT) -f mod_macro.mak    CFG="mod_macro - Win32 $(LONG)" RECURSE=0 $(CTARGET)
@@ -610,11 +622,6 @@ _build:
 	 $(MAKE) $(MAKEOPT) -f mod_userdir.mak     CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..\..
-!IF EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
-	cd modules\md
-	 $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_md.mak          CFG="mod_md - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-	cd ..\..
-!ENDIF
 	cd modules\metadata
 	 $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak   CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_env.mak         CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
@@ -641,19 +648,27 @@ _build:
 	 $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak  CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_proxy_uwsgi.mak  CFG="mod_proxy_uwsgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_proxy_wstunnel.mak  CFG="mod_proxy_wstunnel - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+!IF EXIST("srclib\serf")
+	 $(MAKE) $(MAKEOPT) -f mod_serf.mak        CFG="mod_serf - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+!ENDIF
+	cd ..\..
+# mod_proxy before mod_proxy_http2
+!IF EXIST("srclib\nghttp2")
+	cd modules\http2
+	 $(MAKE) $(MAKEOPT) -f mod_http2.mak       CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..\..
+!ENDIF
 	cd modules\proxy\balancers
 	 $(MAKE) $(MAKEOPT) -f mod_lbmethod_bybusyness.mak CFG="mod_lbmethod_bybusyness - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_lbmethod_byrequests.mak CFG="mod_lbmethod_byrequests - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_lbmethod_bytraffic.mak  CFG="mod_lbmethod_bytraffic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	 $(MAKE) $(MAKEOPT) -f mod_lbmethod_heartbeat.mak  CFG="mod_lbmethod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..\..\..
-# mod_proxy_http2 must be built after mod_proxy and mod_http2
-!IF EXIST("srclib\nghttp2")
-	cd modules\http2
-	 $(MAKE) $(MAKEOPT) -f mod_http2.mak         CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-	 $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak   CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-	cd ..\..
+!IFDEF ALL
+	cd modules\proxy\examples
+	 $(MAKE) $(MAKEOPT) -f mod_lbmethod_rr.mak CFG="mod_lbmethod_rr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	cd ..\..\..
 !ENDIF
 	cd modules\session
 	 $(MAKE) $(MAKEOPT) -f mod_session.mak        CFG="mod_session - Win32 $(LONG)" RECURSE=0 $(CTARGET)
@@ -669,11 +684,16 @@ _build:
 #	 $(MAKE) $(MAKEOPT) -f mod_session_crypto.mak CFG="mod_session_crypto - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 #	cd ..\..
 	cd modules\ssl
-	 $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..\..
 	cd support
-	 $(MAKE) $(MAKEOPT) $(SSLOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
 	cd ..
+!IF EXIST("srclib\jansson") && EXIST("srclib\curl")
+	cd modules\md
+	 $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_md.mak          CFG="mod_md - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+	cd ..\..
+!ENDIF
 !ENDIF
 	cd support
 	 $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
@@ -720,6 +740,9 @@ _build:
 	devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
 	devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
 !ENDIF
+!IF EXIST("srclib\serf")
+	devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_serf
+!ENDIF
 
 !ELSE
 
@@ -765,12 +788,17 @@ _build:
 	@msdev $(TLP).dsw /USEENV /MAKE \
 		"mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
 !ENDIF
+!IF EXIST("srclib\serf")
+	@msdev $(TLP).dsw /USEENV /MAKE \
+		"mod_serf - Win32 $(LONG)" /NORECURSE $(CTARGET)
+!ENDIF
 
 !ENDIF
 
 
 _copybin:
 	copy $(LONG)\httpd.$(src_exe) 				"$(inst_exe)" <.y
+	copy $(LONG)\libapreq.$(src_dll) 			"$(inst_dll)" <.y
 	copy $(LONG)\libhttpd.$(src_dll) 			"$(inst_dll)" <.y
 	copy srclib\apr\$(LONG)\libapr-1.$(src_dll) 		"$(inst_dll)" <.y
 !IF EXIST("srclib\apr-util")
@@ -784,12 +812,16 @@ _copybin:
 	for %d in ($(DBM_LIST) x) do if not %d == x ( \
 	  copy srclib\$(UTILDIR)\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
 	)
+!IF EXIST("srclib\serf")
+	copy srclib\serf\$(LONG)\libserf.$(src_dll) 		"$(inst_dll)" <.y
+!ENDIF
 !IF "$(SHORT)" == "D"
 	copy srclib\pcre\pcred.$(src_dll)			"$(inst_dll)" <.y
 !ELSE
 	copy srclib\pcre\pcre.$(src_dll)			"$(inst_dll)" <.y
 !ENDIF	
 	copy modules\aaa\$(LONG)\mod_access_compat.$(src_so) 	"$(inst_so)" <.y
+	copy modules\aaa\$(LONG)\mod_allowhandlers.$(src_so) 	"$(inst_so)" <.y
 	copy modules\aaa\$(LONG)\mod_allowmethods.$(src_so) 	"$(inst_so)" <.y
 	copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so) 	"$(inst_so)" <.y
 	copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so) 	"$(inst_so)" <.y
@@ -810,6 +842,7 @@ _copybin:
 	copy modules\aaa\$(LONG)\mod_authz_host.$(src_so) 	"$(inst_so)" <.y
 	copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so) 	"$(inst_so)" <.y
 	copy modules\aaa\$(LONG)\mod_authz_user.$(src_so) 	"$(inst_so)" <.y
+	copy modules\apreq\$(LONG)\mod_apreq.$(src_so) 	"$(inst_so)" <.y
 	copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so) 	"$(inst_so)" <.y
 	copy modules\cache\$(LONG)\mod_cache.$(src_so)		"$(inst_so)" <.y
 	copy modules\cache\$(LONG)\mod_cache_disk.$(src_so)	"$(inst_so)" <.y
@@ -819,6 +852,7 @@ _copybin:
 #	copy modules\cache\$(LONG)\mod_socache_dc.$(src_so)	"$(inst_so)" <.y
 	copy modules\cache\$(LONG)\mod_socache_memcache.$(src_so) "$(inst_so)" <.y
 	copy modules\cache\$(LONG)\mod_socache_shmcb.$(src_so)	"$(inst_so)" <.y
+	copy modules\cache\$(LONG)\mod_socache_redis.$(src_so)	"$(inst_so)" <.y
 	copy modules\core\$(LONG)\mod_macro.$(src_so) 	"$(inst_so)" <.y
 	copy modules\core\$(LONG)\mod_watchdog.$(src_so) 	"$(inst_so)" <.y
 	copy modules\cluster\$(LONG)\mod_heartbeat.$(src_so)	"$(inst_so)" <.y
@@ -901,16 +935,6 @@ _copybin:
 	copy modules\mappers\$(LONG)\mod_speling.$(src_so) 	"$(inst_so)" <.y
 	copy modules\mappers\$(LONG)\mod_userdir.$(src_so) 	"$(inst_so)" <.y
 	copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so) 	"$(inst_so)" <.y
-!IF EXIST("srclib\openssl") &&  EXIST("srclib\jansson") &&  EXIST("srclib\curl")
-	copy modules\md\$(LONG)\mod_md.$(src_so) 		"$(inst_so)" <.y
-!IF "$(SHORT)" == "D"
-	-copy srclib\curl\bin\libcurl_debug.$(src_dll)		"$(inst_dll)" <.y
-	-copy srclib\jansson\bin\jansson_d.$(src_dll)		"$(inst_dll)" <.y
-!ELSE
-	-copy srclib\curl\bin\libcurl.$(src_dll)		"$(inst_dll)" <.y
-	-copy srclib\jansson\bin\jansson.$(src_dll)		"$(inst_dll)" <.y
-!ENDIF
-!ENDIF
 	copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so) 	"$(inst_so)" <.y
 	copy modules\metadata\$(LONG)\mod_env.$(src_so) 	"$(inst_so)" <.y
 	copy modules\metadata\$(LONG)\mod_expires.$(src_so) 	"$(inst_so)" <.y
@@ -934,21 +958,32 @@ _copybin:
 	copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so) 	"$(inst_so)" <.y
 	copy modules\proxy\$(LONG)\mod_proxy_uwsgi.$(src_so) 	"$(inst_so)" <.y
 	copy modules\proxy\$(LONG)\mod_proxy_wstunnel.$(src_so) 	"$(inst_so)" <.y
+!IF EXIST("srclib\serf")
+	copy modules\proxy\$(LONG)\mod_serf.$(src_so)		"$(inst_so)" <.y
+!ENDIF
 	copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
 	copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
 	copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bytraffic.$(src_so)  "$(inst_so)" <.y
 	copy modules\proxy\balancers\$(LONG)\mod_lbmethod_heartbeat.$(src_so)  "$(inst_so)" <.y
+!IFDEF ALL
+	copy modules\proxy\examples\$(LONG)\mod_lbmethod_rr.$(src_so) "$(inst_so)" <.y
+!ENDIF
 	copy modules\session\$(LONG)\mod_session.$(src_so)        "$(inst_so)" <.y
 	copy modules\session\$(LONG)\mod_session_cookie.$(src_so) "$(inst_so)" <.y
 	copy modules\session\$(LONG)\mod_session_dbd.$(src_so)    "$(inst_so)" <.y
 	copy modules\slotmem\$(LONG)\mod_slotmem_plain.$(src_so)    "$(inst_so)" <.y
 	copy modules\slotmem\$(LONG)\mod_slotmem_shm.$(src_so)    "$(inst_so)" <.y
 !IF EXIST("srclib\openssl")
+!IF EXIST("srclib\jansson") &&  EXIST("srclib\curl")
+	copy modules\md\$(LONG)\mod_md.$(src_so) 		"$(inst_so)" <.y
+	-copy srclib\jansson\bin\jansson.$(src_dll)		"$(inst_dll)" <.y
+	-copy srclib\curl\bin\libcurl.$(src_dll)		"$(inst_dll)" <.y
+!ENDIF
 #	copy modules\session\$(LONG)\mod_session_crypto.$(src_so) "$(inst_so)" <.y
 	copy modules\ssl\$(LONG)\mod_ssl.$(src_so) 		"$(inst_so)" <.y
-	-copy srclib\openssl\$(SSLBIN)\$(SSLCRP)*.$(src_dll) 	"$(inst_dll)" <.y
-	-copy srclib\openssl\$(SSLBIN)\$(SSLLIB)*.$(src_dll) 	"$(inst_dll)" <.y
-	-copy srclib\openssl\$(SSLAPP)\openssl.$(src_exe) 	"$(inst_exe)" <.y
+	-copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll) 	"$(inst_dll)" <.y
+	-copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll) 	"$(inst_dll)" <.y
+	-copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe) 	"$(inst_exe)" <.y
 	copy support\$(LONG)\abs.$(src_exe) 			"$(inst_exe)" <.y
 !ENDIF
 	copy support\$(LONG)\ab.$(src_exe) 			"$(inst_exe)" <.y
@@ -992,209 +1027,6 @@ _install:
 	-mkdir "$(INSTDIR)\lib"
 	-mkdir "$(INSTDIR)\logs"
 	-mkdir "$(INSTDIR)\modules"
-	copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
-	copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
-	copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
-	copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
-	copy NOTICE       "$(INSTDIR)\NOTICE.txt" <.y
-	copy README       "$(INSTDIR)\README.txt" <.y
-	type << >> "$(INSTDIR)\NOTICE.txt"
-
-Regular expression support is provided by the PCRE library package,
-which is open source software, written by Philip Hazel, and copyright
-by the University of Cambridge, England. The original software is
-available from
-  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
-<<
-	-awk -f <<script1.awk < "srclib\pcre\LICENCE" >> "$(INSTDIR)\LICENSE.txt"
-BEGIN {
-    print "";
-    print "For the pcre.dll component:";
-    print "";
-    while ( getline > 0 ) {
-	if ( $$0 ~ /^End$$/ ) $$0 = "END OF PCRE LICENSE";
-	print $$0;
-   }
-}
-<<
-!IF EXIST("srclib\openssl")
-	-copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
-	type << >> "$(INSTDIR)\NOTICE.txt"
-
-This binary distribution includes cryptographic software written by
-Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
-(tjh@cryptsoft.com), and software developed by the OpenSSL Project 
-for use in the OpenSSL Toolkit <http://www.openssl.org/>.
-<<
-	-awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
-BEGIN {
-    print "";
-    print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
-    print "";
-    while ( getline > 0 ) {
-	print $$0;
-   }
-}
-<<
-	copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
-
- Apache HTTP Server 2.4 Limited OpenSSL Distribution
-
- This binary distribution includes the minimal components of OpenSSL required
- to support mod_ssl for Apache HTTP Server version 2.4 (details are listed 
- in OPENSSL-README.txt.)  For the complete list of CHANGES to this and later 
- versions of OpenSSL, please refer to the definative source,
- <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
- full binary or source distribution package from <http://www.openssl.org/>.
-
- These OpenSSL binaries were built for distribution from the U.S. without 
- support for the patented encryption methods IDEA, MDC-2 or RC5.
-
---------------------------------------------------------------------------------
-
-<<
-	-copy "$(INSTDIR)\OPENSSL-NEWS.txt" \
-	    + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
-	copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
-
- Apache HTTP Server 2.4 Limited OpenSSL Distribution
-
- This binary installation of OpenSSL is a limited distribution of the
- files derived from the OpenSSL project:
-
-   LICENSE.txt (includes openssl LICENSE)
-   OPENSSL-NEWS.txt
-   OPENSSL-README.txt
-   conf\openssl.cnf
-   bin\libeay32.dll
-   bin\ssleay32.dll
-   bin\openssl.exe
-
- These are the minimal libraries and tools required to use mod_ssl as 
- distributed with Apache HTTP Server version 2.4.  No library link files, 
- headers or sources are distributed with this binary distribution.  Please 
- refer to the <http://www.openssl.org/> site for complete source or binary 
- distributions.
-
- These OpenSSL binaries were built for distribution from the U.S. without 
- support for the patented encryption methods IDEA, MDC-2 or RC5.
-
- The Apache HTTP Project only supports the binary distribution of these files
- and development of the mod_ssl module.  We cannot provide support assistance
- for using or configuring the OpenSSL package or these modules.  Please refer
- all installation and configuration questions to the appropriate forum,
- such as the user supported lists, <http://httpd.apache.org/userslist.html> 
- the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
- OpenSSL support page.
-
---------------------------------------------------------------------------------
-
-<<
-	-copy "$(INSTDIR)\OPENSSL-README.txt" \
-	    + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
-!ENDIF
-!IF EXIST("srclib\zlib")
-	type << >> "$(INSTDIR)\NOTICE.txt"
-
-This binary distribution of mod_deflate.so includes zlib compression code
-<http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
-and Mark Adler (madler@alumni.caltech.edu) .
-<<
-	-awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
-BEGIN {
-    while ( getline > 0 ) {
-	if ( $$0 ~ /Copyright notice:/ ) {
-	    print "";
-	    print "For the mod_deflate zlib compression component:";
-	    while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
-		print $$0;
-	    }
-	    exit 0;
-	}
-    }
-    exit 1;
-}
-<<
-!ENDIF
-!IF EXIST("srclib\lua")
-	type << >> "$(INSTDIR)\NOTICE.txt"
-
-This binary distribution of mod_lua.so includes the Lua language, 
-developed at Lua.org, a laboratory of the Department of Computer Science 
-of PUC-Rio (the Pontifical Catholic University of Rio de Janeiro in Brazil).
-For complete information, visit Lua's web site at http://www.lua.org/
-<<
-	-awk -f <<script.awk < "srclib\lua\COPYRIGHT" >> "$(INSTDIR)\LICENSE.txt"
-BEGIN {
-    print "";
-    print "For the mod_lua language component:";
-    print "";
-    while ( getline > 0 && $$0 !~ /end of COPYRIGHT/ ) {
-	print $$0;
-    }
-    exit 0;
-}
-<<
-!ENDIF
-!IF EXIST("srclib\libxml2")
-	type << >> "$(INSTDIR)\NOTICE.txt"
-
-This binary distributions of mod_proxy_html.so and mod_xml2enc.so include the
-libxml2 C library written by Daniel Veillard (daniel veillard.com), Bjorn 
-Reese (breese users.sourceforge.net) and Gary Pennington (Gary.Pennington 
-uk.sun.com). For complete information, visit LibXML2's web site at 
-https://http://www.xmlsoft.org/
-<<
-	-awk -f <<script.awk < "srclib\libxml2\Copyright" >> "$(INSTDIR)\LICENSE.txt"
-BEGIN {
-    print "";
-    print "For the mod_proxy_html and mod_xml2enc components:";
-    print "";
-	    while ( getline > 0 ) {
-	print $$0;
-    }
-    exit 0;
-}
-<<
-!ENDIF
-!IF EXIST("srclib\nghttp2")
-	type << >> "$(INSTDIR)\NOTICE.txt"
-
-This binary distribution of mod_http2.so includes nghttp2 C library written 
-by Tatsuhiro Tsujikawa. For complete information, visit nghttp2's web site 
-at https://nghttp2.org/
-<<
-	-awk -f <<script.awk < "srclib\nghttp2\COPYING" >> "$(INSTDIR)\LICENSE.txt"
-BEGIN {
-    print "";
-    print "For the mod_http2 component:";
-    print "";
-	    while ( getline > 0 ) {
-	print $$0;
-    }
-    exit 0;
-}
-<<
-!ENDIF
-!IF EXIST("srclib\brotli")
-	type << >> "$(INSTDIR)\NOTICE.txt"
-
-This binary distribution of mod_brotli.so includes Brotli C library written 
-by the Brotli Authors. For complete information, visit Brotli's web site 
-at https://github.com/google/brotli
-<<
-	-awk -f <<script.awk < "srclib\brotli\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
-BEGIN {
-    print "";
-    print "For the mod_brotli component:";
-    print "";
-	    while ( getline > 0 ) {
-	print $$0;
-    }
-    exit 0;
-}
-<<
-!ENDIF
 	$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
 		_copybin src_exe=exe src_dll=dll src_so=so             \
 		inst_exe="$(INSTDIR)\bin"                              \
@@ -1213,19 +1045,8 @@ BEGIN {
 	cd ..\..
 !ENDIF
 	copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
-	-awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
-    BEGIN { 
-	if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
-	    gsub( /\\/, "/", perlroot );
-	    print "#!" perlroot;
-	}
-    }
-    {
-	if ( $$0 !~ /^#!/ ) {
-	    print $$0;
-	}
-    }
-<<
+	copy docs\cgi-examples\printenv.vbs "$(INSTDIR)\cgi-bin\printenv.vbs" <.y
+	copy docs\cgi-examples\printenv.wsf "$(INSTDIR)\cgi-bin\printenv.wsf" <.y
 	xcopy docs\error 	"$(INSTDIR)\error" /s /d < .a
 	xcopy docs\docroot 	"$(INSTDIR)\htdocs" /d < .a
 	xcopy docs\icons 	"$(INSTDIR)\icons" /s /d < .a
@@ -1235,6 +1056,9 @@ BEGIN {
 		srclib\apr-util\xml\expat\lib\expat.h \
 		srclib\apr\include\*.h \
 		srclib\apr-util\include\*.h \
+!IF EXIST("srclib\serf")
+		srclib\serf\*.h \
+!ENDIF
 		include\*.h \
 		os\win32\os.h \
 		modules\cache\mod_cache.h \
@@ -1250,6 +1074,7 @@ BEGIN {
 		modules\loggers\mod_log_config.h \
 		modules\mappers\mod_rewrite.h \
 		modules\proxy\mod_proxy.h \
+		modules\proxy\mod_serf.h \
 		modules\ssl\mod_ssl.h \
 		modules\ssl\mod_ssl_openssl.h \
           ) do \
@@ -1261,8 +1086,8 @@ BEGIN {
 !IF EXIST("srclib\apr-util")
 	copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib	"$(INSTDIR)\lib" <.y
 	copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb	"$(INSTDIR)\lib" <.y
-	copy srclib\apr-util\$(EXPAT)\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
-	copy srclib\apr-util\$(EXPAT)\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
+	copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
+	copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
 	copy srclib\apr-util\$(LONG)\libaprutil-1.lib 	"$(INSTDIR)\lib" <.y
 	copy srclib\apr-util\$(LONG)\libaprutil-1.exp 	"$(INSTDIR)\lib" <.y
 	copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib	"$(INSTDIR)\lib" <.y
@@ -1274,6 +1099,10 @@ BEGIN {
 	copy srclib\expat\win32\$(LONG)\libexpat.exp    "$(INSTDIR)\lib" <.y
 	copy srclib\expat\win32\$(LONG)\libexpat.dll    "$(INSTDIR)\bin" <.y
 !ENDIF
+!IF EXIST("srclib\serf")
+	copy srclib\serf\$(LONG)\libserf.lib 		"$(INSTDIR)\lib" <.y
+	copy srclib\serf\$(LONG)\libserf.exp 		"$(INSTDIR)\lib" <.y
+!ENDIF
 	copy $(LONG)\libhttpd.exp 			"$(INSTDIR)\lib" <.y
 	copy $(LONG)\libhttpd.lib 			"$(INSTDIR)\lib" <.y
 	copy modules\dav\main\$(LONG)\mod_dav.exp 	"$(INSTDIR)\lib" <.y
@@ -1293,3 +1122,46 @@ BEGIN {
 <<
 	del .y
 	del .a
+
+_fixshebang:
+!IF EXIST("$(INSTDIR)\cgi-bin")
+	-awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
+    BEGIN { 
+	if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
+	    gsub( /\\/, "/", perlroot );
+	    print "#!" perlroot;
+	}
+    }
+    {
+	if ( $$0 !~ /^#!/ ) {
+	    print $$0;
+	}
+    }
+<<
+	-cscript -nologo <<script.vbs "docs/cgi-examples/printenv.vbs" "$(INSTDIR)\cgi-bin\printenv.vbs"
+    Dim fso, f, c
+    Set fso = CreateObject("Scripting.FileSystemObject")
+    Set f = fso.OpenTextFile(WScript.Arguments(0), 1)
+    f.SkipLine
+    c = f.ReadAll
+    f.Close
+    Set f = fso.OpenTextFile(WScript.Arguments(1), 2, TRUE)
+    f.WriteLine "'!" & Replace(WScript.FullName, "\", "/") & " -nologo"
+    f.Write c
+    f.Close
+<<
+	-cscript -nologo <<script.vbs "docs/cgi-examples/printenv.wsf" "$(INSTDIR)\cgi-bin\printenv.wsf"
+    Dim fso, f, c
+    Set fso = CreateObject("Scripting.FileSystemObject")
+    Set f = fso.OpenTextFile(WScript.Arguments(0), 1)
+    f.SkipLine
+    c = f.ReadAll
+    f.Close
+    Set f = fso.OpenTextFile(WScript.Arguments(1), 2, TRUE)
+    f.WriteLine "'!" & Replace(WScript.FullName, "\", "/") & " -nologo"
+    f.Write c
+    f.Close
+<<
+!ENDIF
+
+

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/NWGNUmakefile
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/NWGNUmakefile?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/NWGNUmakefile (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/NWGNUmakefile Wed Sep 12 13:56:17 2018
@@ -62,18 +62,10 @@ XINCDIRS	+= \
 			$(APR)/include \
 			$(APRUTIL)/include \
 			$(SRC)/include \
-			$(STDMOD)/aaa \
 			$(STDMOD)/core \
 			$(STDMOD)/filters \
 			$(STDMOD)/generators \
-			$(STDMOD)/http \
-			$(STDMOD)/loggers \
-			$(STDMOD)/mappers \
 			$(STDMOD)/proxy \
-			$(STDMOD)/ssl \
-			$(SERVER) \
-			$(SERVER)/mpm/netware \
-			$(PCRE) \
 			$(NWOS) \
 			$(EOLIST)
 
@@ -226,6 +218,17 @@ TARGET_lib = \
 # Paths must all use the '/' character
 #
 FILES_nlm_objs = \
+	$(OBJDIR)/apreq_cookie.o \
+	$(OBJDIR)/apreq_error.o \
+	$(OBJDIR)/apreq_module.o \
+	$(OBJDIR)/apreq_module_cgi.o \
+	$(OBJDIR)/apreq_module_custom.o \
+	$(OBJDIR)/apreq_param.o \
+	$(OBJDIR)/apreq_parser.o \
+	$(OBJDIR)/apreq_parser_header.o \
+	$(OBJDIR)/apreq_parser_multipart.o \
+	$(OBJDIR)/apreq_parser_urlencoded.o \
+	$(OBJDIR)/apreq_util.o \
 	$(OBJDIR)/buildmark.o \
 	$(OBJDIR)/config.o \
 	$(OBJDIR)/connection.o \
@@ -239,7 +242,6 @@ FILES_nlm_objs = \
 	$(OBJDIR)/http_request.o \
 	$(OBJDIR)/byterange_filter.o \
 	$(OBJDIR)/chunk_filter.o \
-	$(OBJDIR)/http_etag.o \
 	$(OBJDIR)/http_filters.o \
 	$(OBJDIR)/listen.o \
 	$(OBJDIR)/log.o \
@@ -270,6 +272,7 @@ FILES_nlm_objs = \
 	$(OBJDIR)/util_charset.o \
 	$(OBJDIR)/util_cookies.o \
 	$(OBJDIR)/util_debug.o \
+	$(OBJDIR)/util_etag.o \
 	$(OBJDIR)/util_expr_eval.o \
 	$(OBJDIR)/util_expr_parse.o \
 	$(OBJDIR)/util_expr_scan.o \
@@ -390,7 +393,7 @@ nlms :: libs $(TARGET_nlm)
 # Updated this target to create necessary directories and copy files to the
 # correct place.  (See $(AP_WORK)/build/NWGNUhead.inc for examples)
 #
-MKCNF	= $(AWK) -v BDIR=$(BASEDIR) -v PORT=$(PORT) -v SSLPORT=$(SSLPORT) -v MODSSL=$(WITH_SSL) -v BSDSKT=$(USE_STDSOCKETS) -f build/mkconfNW.awk $1 > $2
+MKCNF	= $(AWK) -v BDIR=$(BASEDIR) -v PORT=$(PORT) -v SSLPORT=$(SSLPORT) -v MODSSL=$(WITH_SSL) -v MODHTTP2=$(WITH_HTTP2) -v BSDSKT=$(USE_STDSOCKETS) -f build/mkconfNW.awk $1 > $2
 
 install :: nlms instscripts FORCE
 	$(call COPY,$(OBJDIR)/$(NLM_NAME).nlm,                         $(INSTALLBASE)/)
@@ -414,11 +417,13 @@ install :: nlms instscripts FORCE
 	$(call MKCNF,docs/conf/extra/httpd-default.conf.in,            $(INSTALLBASE)/conf/extra/httpd-default.conf)
 	$(call MKCNF,docs/conf/extra/httpd-info.conf.in,               $(INSTALLBASE)/conf/extra/httpd-info.conf)
 	$(call MKCNF,docs/conf/extra/httpd-languages.conf.in,          $(INSTALLBASE)/conf/extra/httpd-languages.conf)
+	$(call MKCNF,docs/conf/extra/httpd-macro.conf.in,              $(INSTALLBASE)/conf/extra/httpd-macro.conf)
 	$(call MKCNF,docs/conf/extra/httpd-manual.conf.in,             $(INSTALLBASE)/conf/extra/httpd-manual.conf)
 	$(call MKCNF,docs/conf/extra/httpd-mpm.conf.in,                $(INSTALLBASE)/conf/extra/httpd-mpm.conf)
 	$(call MKCNF,docs/conf/extra/httpd-multilang-errordoc.conf.in, $(INSTALLBASE)/conf/extra/httpd-multilang-errordoc.conf)
 	$(call MKCNF,docs/conf/extra/httpd-userdir.conf.in,            $(INSTALLBASE)/conf/extra/httpd-userdir.conf)
 	$(call MKCNF,docs/conf/extra/httpd-vhosts.conf.in,             $(INSTALLBASE)/conf/extra/httpd-vhosts.conf)
+	$(call MKCNF,docs/conf/extra/httpd-policy.conf.in,             $(INSTALLBASE)/conf/extra/httpd-policy.conf)
 	$(call MKCNF,docs/conf/extra/httpd-ssl.conf.in,                $(INSTALLBASE)/conf/extra/httpd-ssl.conf)
 	$(call MKCNF,docs/conf/extra/proxy-html.conf.in,               $(INSTALLBASE)/conf/extra/proxy-html.conf)
 	$(call COPYR,docs/docroot,                                     $(INSTALLBASE)/htdocs)
@@ -444,6 +449,7 @@ installdev :: FORCE
 	$(call COPY,$(STDMOD)/loggers/mod_log_config.h,                $(INSTALLBASE)/include/)
 	$(call COPY,$(STDMOD)/mappers/mod_rewrite.h,                   $(INSTALLBASE)/include/)
 	$(call COPY,$(STDMOD)/proxy/mod_proxy.h,                       $(INSTALLBASE)/include/)
+	$(call COPY,$(STDMOD)/proxy/mod_serf.h,                        $(INSTALLBASE)/include/)
 	$(call COPY,$(STDMOD)/session/mod_session.h,                   $(INSTALLBASE)/include/)
 	$(call COPY,$(STDMOD)/ssl/mod_ssl.h,                           $(INSTALLBASE)/include/)
 	$(call COPY,$(STDMOD)/ssl/mod_ssl_openssl.h,                   $(INSTALLBASE)/include/)

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/README
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/README?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/README (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/README Wed Sep 12 13:56:17 2018
@@ -24,7 +24,7 @@
   The documentation available as of the date of this release is
   included in HTML format in the docs/manual/ directory.  The most
   up-to-date documentation can be found at
-  http://httpd.apache.org/docs/2.4/.
+  http://httpd.apache.org/docs/trunk/.
 
   Installation
   ------------

Modified: httpd/sandbox/httpd-2.4.x-trunk-delta/README.cmake
URL: http://svn.apache.org/viewvc/httpd/sandbox/httpd-2.4.x-trunk-delta/README.cmake?rev=1840688&r1=1840687&r2=1840688&view=diff
==============================================================================
--- httpd/sandbox/httpd-2.4.x-trunk-delta/README.cmake (original)
+++ httpd/sandbox/httpd-2.4.x-trunk-delta/README.cmake Wed Sep 12 13:56:17 2018
@@ -47,7 +47,7 @@ The following support libraries are mand
     Apache httpd are installed.
   + Additional APR settings affect httpd but are not mandatory, such as
     APR_HAVE_IPV6.
-* PCRE
+* PCRE (version 6.7 or higher)
 
 Certain optional features of APR 2.0-dev (trunk) or APR-Util 1.5.x
 allow some optional features of httpd to be enabled.  For example,
@@ -309,7 +309,8 @@ Known Bugs and Limitations
   of httpd and support libraries in a manner suitable for typical users
 * no logic to find support libraries or otherwise build these modules:
   + mod_socache_dc (requires distcache), mod_serf (requires serf)
-  + additionally, mod_firehose doesn't compile on Windows anyway
+  + additionally, mod_lbmethod_rr and mod_firehose don't compile on Windows
+    anyway
 * buildmark.c isn't necessarily rebuilt when httpd.exe is regenerated
 * ApacheMonitor has a build error and is disabled
 * CGI examples aren't installed