diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 92c184a0dbb..b1295b8604a 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -21,13 +21,15 @@ on: env: MARGS: "-j2" CFLAGS: "-g" + # This will need updating as the ubuntu-latest image changes: + PHP_FPM: "/usr/sbin/php-fpm8.1" jobs: build: strategy: fail-fast: false matrix: - include: + include: # ------------------------------------------------------------------------- - name: Empty APLOGNO() test env: | @@ -169,6 +171,19 @@ jobs: TEST_ARGS="-defines LDAP" TESTS="t/modules/" # ------------------------------------------------------------------------- + - name: APR 1.7.x, APR-util 1.7.x, LDAP + config: --enable-mods-shared=reallyall + pkgs: ldap-utils + env: | + APR_VERSION=1.7.x + APU_VERSION=1.7.x + APU_CONFIG="--with-crypto --with-ldap" + TEST_MALLOC=1 + TEST_LDAP=1 + TEST_ARGS="-defines LDAP" + TESTS="t/modules/" + CLEAR_CACHE=1 + # ------------------------------------------------------------------------- ### TODO: if: *condition_not_24x - name: APR trunk thread debugging config: --enable-mods-shared=reallyall --with-mpm=event @@ -241,7 +256,7 @@ jobs: APR_VERSION=1.7.4 APU_VERSION=1.6.3 APU_CONFIG="--with-crypto" - RUSTLS_VERSION="v0.10.0" + RUSTLS_VERSION="v0.13.0" NO_TEST_FRAMEWORK=1 TEST_INSTALL=1 TEST_MOD_TLS=1 @@ -271,7 +286,7 @@ jobs: - name: OpenSSL 3.1 config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto env: | - TEST_OPENSSL3=3.1.5 + TEST_OPENSSL3=3.1.6 APR_VERSION=1.7.4 APU_VERSION=1.6.3 APU_CONFIG="--without-crypto" @@ -280,7 +295,7 @@ jobs: config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto notest-cflags: -Werror -O2 -Wno-deprecated-declarations env: | - TEST_OPENSSL3=3.2.1 + TEST_OPENSSL3=3.2.2 APR_VERSION=1.7.4 APU_VERSION=1.6.3 APU_CONFIG="--without-crypto" @@ -288,16 +303,17 @@ jobs: - name: OpenSSL 3.2 no-engine config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto env: | - TEST_OPENSSL3=3.2.1 + TEST_OPENSSL3=3.2.2 OPENSSL_CONFIG=no-engine APR_VERSION=1.7.4 APU_VERSION=1.6.3 APU_CONFIG="--without-crypto" # ------------------------------------------------------------------------- - - name: OpenSSL 3.3 (alpha) no-engine + - name: OpenSSL 3.3 no-engine -Werror config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto + notest-cflags: -Werror -O2 env: | - TEST_OPENSSL3=3.3.0-alpha1 + TEST_OPENSSL3=3.3.1 OPENSSL_CONFIG=no-engine APR_VERSION=1.7.4 APU_VERSION=1.6.3 @@ -324,7 +340,7 @@ jobs: cpanminus libtool-bin libapr1-dev libaprutil1-dev liblua5.3-dev libbrotli-dev libcurl4-openssl-dev libnghttp2-dev libjansson-dev libpcre2-dev gdb - perl-doc ${{ matrix.pkgs }} + perl-doc libsasl2-dev ${{ matrix.pkgs }} - uses: actions/checkout@v4 - name: Cache installed libraries uses: actions/cache@v4 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 00000000000..ac9cb119a8a --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,63 @@ +name: Windows + +on: + push: + branches: [ "*" ] + paths-ignore: + - 'docs/**' + - STATUS + - CHANGES + - changes-entries/* + pull_request: + branches: [ "trunk", "2.4.x" ] + paths-ignore: + - 'docs/**' + - STATUS + - CHANGES + - changes-entries/* + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - name: Default + triplet: x64-windows + arch: x64 + build-type: Debug + generator: "Ninja" + + runs-on: windows-latest + timeout-minutes: 30 + name: ${{ matrix.name }} + env: + VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" + steps: + - name: Export GitHub Actions cache environment variables + uses: actions/github-script@v7 + with: + script: | + core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); + core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); + + - name: Install dependencies + run: vcpkg install --triplet ${{ matrix.triplet }} apr[private-headers] apr-util pcre2 openssl + + - uses: actions/checkout@v3 + + - name: Configure CMake + shell: cmd + run: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=${{ matrix.arch }} + cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} ^ + -G "${{ matrix.generator }}" ^ + -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake ^ + -DAPR_INCLUDE_DIR=C:/vcpkg/installed/${{ matrix.triplet }}/include ^ + "-DAPR_LIBRARIES=C:/vcpkg/installed/${{ matrix.triplet }}/lib/libapr-1.lib;C:/vcpkg/installed/${{ matrix.triplet }}/lib/libaprutil-1.lib" + + - name: Build + shell: cmd + run: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=${{ matrix.arch }} + cmake --build ${{github.workspace}}/build --config ${{ matrix.build-type }} diff --git a/.gitignore b/.gitignore index d612e955f74..04e3e8efefd 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,19 @@ Release /build/config.sub /build/config.guess /build/config_vars.sh +/build/confdefs.h +/build/config.log +/build/config.nice +/build/srclib/ +/build/srclib/pth +/build/srclib/apr +/build/srclib/apr-util +/build/srclib/apr-iconv +/build/srclib/distcache +/build/srclib/lua +/build/srclib/pcre +/build/srclib/openssl +/build/srclib/zlib # /build/pkg/ /build/pkg/pkginfo @@ -371,4 +384,4 @@ test/*/*/__pycache__ # make check check -build/config_vars.out \ No newline at end of file +build/config_vars.out diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c10b8f07ab..d6606a2731e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,12 +23,14 @@ PROJECT(HTTPD C) INCLUDE(CheckSymbolExists) INCLUDE(CheckCSourceCompiles) +INCLUDE("build/build-modules-c.cmake") FIND_PACKAGE(LibXml2) FIND_PACKAGE(Lua51) FIND_PACKAGE(OpenSSL) FIND_PACKAGE(ZLIB) FIND_PACKAGE(CURL) +FIND_PACKAGE(PCRE2 COMPONENTS 8BIT) # Options for support libraries not supported by cmake-bundled FindFOO @@ -49,7 +51,10 @@ ENDIF() # PCRE names its libraries differently for debug vs. release builds. # We can't query our own CMAKE_BUILD_TYPE at configure time. # If the debug version exists in PREFIX/lib, default to that one. -IF(EXISTS "${CMAKE_INSTALL_PREFIX}/lib/pcre2-8d.lib") +IF(PCRE2_FOUND) + SET(default_pcre_libraries "PCRE2::8BIT") + SET(default_pcre_cflags "-DHAVE_PCRE2") +ELSEIF(EXISTS "${CMAKE_INSTALL_PREFIX}/lib/pcre2-8d.lib") SET(default_pcre_libraries ${CMAKE_INSTALL_PREFIX}/lib/pcre2-8d.lib) SET(default_pcre_cflags "-DHAVE_PCRE2") ELSEIF(EXISTS "${CMAKE_INSTALL_PREFIX}/lib/pcre2-8.lib") @@ -137,16 +142,6 @@ FOREACH(onelib ${APR_LIBRARIES}) ENDIF() ENDFOREACH() -MACRO(DEFINE_WITH_BLANKS output_definition input_symbol input_value) - IF(MSVC_IDE OR ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.8.11) - SET(${output_definition} "-D${input_symbol}=\"${input_value}\"") - ELSE() - # command-line tool + older cmake, where extra quotes must be added and - # escaped to survive - SET(${output_definition} "-D${input_symbol}=\"\\\"${input_value}\\\"\"") - ENDIF() -ENDMACRO() - MACRO(GET_MOD_ENABLE_RANK macro_modname macro_mod_enable_val macro_output_rank) IF(${macro_mod_enable_val} STREQUAL "O") SET(${macro_output_rank} 0) @@ -558,6 +553,10 @@ IF(LIBXML2_FOUND) ENDIF() SET(mod_proxy_scgi_extra_libs mod_proxy) SET(mod_proxy_wstunnel_extra_libs mod_proxy) +SET(mod_lbmethod_bybusyness_extra_libs mod_proxy) +SET(mod_lbmethod_bytraffic_extra_libs mod_proxy) +SET(mod_lbmethod_byrequests_extra_libs mod_proxy) +SET(mod_lbmethod_heartbeat_extra_libs mod_proxy) SET(mod_proxy_http2_requires NGHTTP2_FOUND) SET(mod_proxy_http2_extra_defines ssize_t=long) SET(mod_proxy_http2_extra_includes ${NGHTTP2_INCLUDE_DIR}) @@ -648,26 +647,20 @@ SET(install_targets) SET(install_bin_pdb) SET(install_modules) # special handling vs. other installed targets SET(install_modules_pdb) -SET(builtin_module_shortnames "win32 mpm_winnt http so") # core added automatically +SET(builtin_module_shortnames) +LIST(APPEND builtin_module_shortnames "win32" "mpm_winnt" "http" "so") # core added automatically SET(extra_builtin_modules) # the ones specified with -DWITH_MODULES= -IF(WITH_MODULES) # modules statically linked with the server - STRING(REPLACE "," ";" WITH_MODULE_LIST ${WITH_MODULES}) - FOREACH(static_mod ${WITH_MODULE_LIST}) - STRING(REGEX MATCH "[^/]+\\.c" mod_basename ${static_mod}) - STRING(REGEX REPLACE "^mod_(.*)\\.c" "\\1" mod_module_name ${mod_basename}) - SET(builtin_module_shortnames "${builtin_module_shortnames} ${mod_module_name}") - CONFIGURE_FILE(${static_mod} ${PROJECT_BINARY_DIR}/ COPYONLY) - SET(extra_builtin_modules ${extra_builtin_modules} ${PROJECT_BINARY_DIR}/${mod_basename}) - ENDFOREACH() - EXECUTE_PROCESS(COMMAND cmd /c "echo ${builtin_module_shortnames}| awk -f ${CMAKE_CURRENT_SOURCE_DIR}/build/build-modules-c.awk > ${PROJECT_BINARY_DIR}/modules.c" RESULT_VARIABLE rv) - IF(rv) - MESSAGE(FATAL_ERROR "build-modules-c.awk failed (${rv})") - ENDIF() -ELSE() - # no extra built-in modules; use the default modules.c to avoid the awk prereq - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/os/win32/modules.c ${PROJECT_BINARY_DIR}/ COPYONLY) -ENDIF() +STRING(REPLACE "," ";" WITH_MODULE_LIST "${WITH_MODULES}") +FOREACH(static_mod ${WITH_MODULE_LIST}) + STRING(REGEX MATCH "[^/]+\\.c" mod_basename ${static_mod}) + STRING(REGEX REPLACE "^mod_(.*)\\.c" "\\1" mod_module_name ${mod_basename}) + LIST(APPEND builtin_module_shortnames "${mod_module_name}") + CONFIGURE_FILE(${static_mod} ${PROJECT_BINARY_DIR}/ COPYONLY) + SET(extra_builtin_modules ${extra_builtin_modules} ${PROJECT_BINARY_DIR}/${mod_basename}) +ENDFOREACH() + +generate_builtin_modules_c("${PROJECT_BINARY_DIR}/modules.c" "${builtin_module_shortnames}") # for easy reference from .dll/.so builds CONFIGURE_FILE(os/win32/BaseAddr.ref ${PROJECT_BINARY_DIR}/ COPYONLY) @@ -893,8 +886,11 @@ FOREACH (mod ${MODULE_PATHS}) LINK_FLAGS /base:@${PROJECT_BINARY_DIR}/BaseAddr.ref,${mod_name}.so ) TARGET_LINK_LIBRARIES(${mod_name} ${${mod_extra_libs}} libhttpd ${EXTRA_LIBS} ${APR_LIBRARIES} ${HTTPD_SYSTEM_LIBS}) - DEFINE_WITH_BLANKS(define_long_name "LONG_NAME" "${mod_name} for Apache HTTP Server") - SET_TARGET_PROPERTIES(${mod_name} PROPERTIES COMPILE_FLAGS "${define_long_name} -DBIN_NAME=${mod_name}.so ${EXTRA_COMPILE_FLAGS}") + TARGET_COMPILE_DEFINITIONS(${mod_name} PRIVATE + "LONG_NAME=${mod_name} for Apache HTTP Server" + "BIN_NAME=${mod_name}.so" + ) + TARGET_COMPILE_OPTIONS(${mod_name} PRIVATE "${EXTRA_COMPILE_FLAGS}") # Extra defines? SET(mod_extra_defines "${mod_name}_extra_defines") @@ -921,17 +917,27 @@ SET_TARGET_PROPERTIES(libhttpd PROPERTIES SET(install_targets ${install_targets} libhttpd) SET(install_bin_pdb ${install_bin_pdb} $) 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 -DAPREQ_DECLARE_EXPORT ${define_long_name} ${PCRE_CFLAGS} -DBIN_NAME=libhttpd.dll ${EXTRA_COMPILE_FLAGS}") +TARGET_COMPILE_DEFINITIONS(libhttpd PRIVATE + "LONG_NAME=Apache HTTP Server Core" + "BIN_NAME=libhttpd.dll" + "AP_DECLARE_EXPORT" + "APREQ_DECLARE_EXPORT" +) +TARGET_COMPILE_OPTIONS(libhttpd PRIVATE ${PCRE_CFLAGS} ${EXTRA_COMPILE_FLAGS}) ADD_DEPENDENCIES(libhttpd test_char_header) ########### HTTPD EXECUTABLES ########## ADD_EXECUTABLE(httpd server/main.c build/win32/httpd.rc) SET(install_targets ${install_targets} httpd) SET(install_bin_pdb ${install_bin_pdb} $) -DEFINE_WITH_BLANKS(define_long_name "LONG_NAME" "Apache HTTP Server") +TARGET_COMPILE_DEFINITIONS(httpd PRIVATE + "APP_FILE" + "LONG_NAME=Apache HTTP Server" + "BIN_NAME=httpd.exe" + "ICON_FILE=${CMAKE_SOURCE_DIR}/build/win32/apache.ico" +) +TARGET_COMPILE_OPTIONS(httpd PRIVATE "${EXTRA_COMPILE_FLAGS}") SET_TARGET_PROPERTIES(httpd PROPERTIES - COMPILE_FLAGS "-DAPP_FILE ${define_long_name} -DBIN_NAME=httpd.exe -DICON_FILE=${CMAKE_SOURCE_DIR}/build/win32/apache.ico ${EXTRA_COMPILE_FLAGS}" LINK_FLAGS "/stack:0x40000" ) TARGET_LINK_LIBRARIES(httpd libhttpd ${EXTRA_LIBS}) @@ -954,8 +960,12 @@ FOREACH(pgm ${standard_support}) ADD_EXECUTABLE(${pgm} support/${pgm}.c ${${extra_sources}} build/win32/httpd.rc) SET(install_targets ${install_targets} ${pgm}) SET(install_bin_pdb ${install_bin_pdb} $) - DEFINE_WITH_BLANKS(define_long_name "LONG_NAME" "Apache HTTP Server ${pgm} program") - SET_TARGET_PROPERTIES(${pgm} PROPERTIES COMPILE_FLAGS "-DAPP_FILE ${define_long_name} -DBIN_NAME=${pgm}.exe ${EXTRA_COMPILE_FLAGS}") + TARGET_COMPILE_DEFINITIONS(${pgm} PRIVATE + "APP_FILE" + "LONG_NAME=Apache HTTP Server ${pgm} program" + "BIN_NAME=${pgm}.exe" + ) + TARGET_COMPILE_OPTIONS(${mod_name} PRIVATE "${EXTRA_COMPILE_FLAGS}") TARGET_LINK_LIBRARIES(${pgm} ${EXTRA_LIBS} ${APR_LIBRARIES}) ENDFOREACH() @@ -964,8 +974,11 @@ SET(install_targets ${install_targets} ab) SET(install_bin_pdb ${install_bin_pdb} $) SET(tmp_includes ${HTTPD_INCLUDE_DIRECTORIES}) SET_TARGET_PROPERTIES(ab PROPERTIES INCLUDE_DIRECTORIES "${tmp_includes}") -DEFINE_WITH_BLANKS(define_long_name "LONG_NAME" "Apache HTTP Server ab program") -SET_TARGET_PROPERTIES(ab PROPERTIES COMPILE_FLAGS "-DAPP_FILE ${define_long_name} -DBIN_NAME=ab.exe ${EXTRA_COMPILE_FLAGS}") +TARGET_COMPILE_DEFINITIONS(ab PRIVATE + "APP_FILE" + "LONG_NAME=Apache HTTP Server ab program" + "BIN_NAME=ab.exe" +) TARGET_LINK_LIBRARIES(ab ${EXTRA_LIBS} ${APR_LIBRARIES} Ws2_32.lib) IF(OPENSSL_FOUND) @@ -975,8 +988,11 @@ IF(OPENSSL_FOUND) SET_TARGET_PROPERTIES(abs PROPERTIES COMPILE_DEFINITIONS HAVE_OPENSSL) SET(tmp_includes ${HTTPD_INCLUDE_DIRECTORIES} ${OPENSSL_INCLUDE_DIR}) SET_TARGET_PROPERTIES(abs PROPERTIES INCLUDE_DIRECTORIES "${tmp_includes}") - DEFINE_WITH_BLANKS(define_long_name "LONG_NAME" "Apache HTTP Server ab/SSL program") - SET_TARGET_PROPERTIES(abs PROPERTIES COMPILE_FLAGS "-DAPP_FILE ${define_long_name} -DBIN_NAME=abs.exe ${EXTRA_COMPILE_FLAGS}") + TARGET_COMPILE_DEFINITIONS(abs PRIVATE + "APP_FILE" + "LONG_NAME=Apache HTTP Server ab/SSL program" + "BIN_NAME=abs.exe" + ) TARGET_LINK_LIBRARIES(abs ${EXTRA_LIBS} ${APR_LIBRARIES} ${OPENSSL_LIBRARIES} Ws2_32.lib) ENDIF() diff --git a/README.cmake b/README.cmake index 938da37d379..01ab6e6a215 100644 --- a/README.cmake +++ b/README.cmake @@ -34,7 +34,6 @@ The following tools must be in PATH: cmake version 3.1.3 or later is required to work with current OpenSSL releases. (OpenSSL is an optional prerequisite of httpd.) * Perl -* If the WITH_MODULES feature is used: awk * If using a command-line compiler: compiler and linker and related tools (Refer to the cmake documentation for more information.) @@ -100,8 +99,6 @@ How to build 2. Make sure cmake and Perl are in PATH. Additionally, some backends require compile tools in PATH. (Hint: "Visual Studio Command Prompt") - In the unlikely event that you use -DWITH_MODULES, described below, make - sure awk is in PATH. 3. cmake -G "some backend, like 'NMake Makefiles'" -DCMAKE_INSTALL_PREFIX=d:/path/to/httpdinst diff --git a/STATUS b/STATUS index 746199e1654..59964280f06 100644 --- a/STATUS +++ b/STATUS @@ -240,7 +240,7 @@ RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: end of the ap_process_request_internal() processing so sub_req-esters know this request cannot be run. This provides authors of older modules better compatibility, while still improving the security and - robustness of 2.0. + robustness of 2.0. Status: still need to decide where this goes, OtherBill comments... Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net> diff --git a/build/build-modules-c.awk b/build/build-modules-c.awk index 68fd83bbe24..bde6c469291 100644 --- a/build/build-modules-c.awk +++ b/build/build-modules-c.awk @@ -47,7 +47,7 @@ END { print " * initially linked into the Apache processing" print " * [extendable under run-time via AddModule]" print " */" - print "module *ap_prelinked_modules[] = {" + print "AP_DECLARE_DATA module *ap_prelinked_modules[] = {" for (i = 0 ; i < n; ++i) { printf " &%s_module,\n", modules[i] } @@ -58,7 +58,7 @@ END { print " * We need the symbols as strings for containers" print " */" print "" - print "ap_module_symbol_t ap_prelinked_module_symbols[] = {" + print "AP_DECLARE_DATA ap_module_symbol_t ap_prelinked_module_symbols[] = {" for (i = 0; i < n; ++i) { printf (" {\"%s_module\", &%s_module},\n", modules[i], modules[i]) } @@ -72,7 +72,7 @@ END { print " * initially loaded into the Apache process" print " * [extendable under run-time via LoadModule]" print " */" - print "module *ap_preloaded_modules[] = {" + print "AP_DECLARE_DATA module *ap_preloaded_modules[] = {" for (i = 0; i < pn; ++i) { printf " &%s_module,\n", pmodules[i] } diff --git a/build/build-modules-c.cmake b/build/build-modules-c.cmake new file mode 100644 index 00000000000..491ff3cd51f --- /dev/null +++ b/build/build-modules-c.cmake @@ -0,0 +1,27 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +function(generate_builtin_modules_c output_filename module_list) + list(PREPEND module_list "core") + + foreach(module ${module_list}) + string(APPEND MODULES_EXTERN "extern module ${module}_module;\n") + string(APPEND MODULES_PRELINK " &${module}_module,\n") + string(APPEND MODULES_SYMBOLS " {\"${module}_module\", &${module}_module},\n") + string(APPEND MODULES_PRELOAD " &${module}_module,\n") + endforeach() + + configure_file("build/modules.c.in" ${output_filename}) +endfunction() diff --git a/build/modules.c.in b/build/modules.c.in new file mode 100644 index 00000000000..fa0a9faa2ec --- /dev/null +++ b/build/modules.c.in @@ -0,0 +1,41 @@ +/* + * modules.c --- automatically generated by Apache + * configuration script. DO NOT HAND EDIT!!!!! + */ + +#include "ap_config.h" +#include "httpd.h" +#include "http_config.h" + +@MODULES_EXTERN@ +/* + * Modules which implicitly form the + * list of activated modules on startup, + * i.e. these are the modules which are + * initially linked into the Apache processing + * [extendable under run-time via AddModule] + */ +AP_DECLARE_DATA module *ap_prelinked_modules[] = { +@MODULES_PRELINK@ + NULL +}; + +/* + * We need the symbols as strings for containers + */ +ap_module_symbol_t ap_prelinked_module_symbols[] = { +@MODULES_SYMBOLS@ + {NULL, NULL} +}; + +/* + * Modules which initially form the + * list of available modules on startup, + * i.e. these are the modules which are + * initially loaded into the Apache process + * [extendable under run-time via LoadModule] + */ +module *ap_preloaded_modules[] = { +@MODULES_PRELOAD@ + NULL +}; diff --git a/changes-entries/bz69203.txt b/changes-entries/bz69203.txt new file mode 100644 index 00000000000..2408352a3bd --- /dev/null +++ b/changes-entries/bz69203.txt @@ -0,0 +1,2 @@ + *) mod_proxy_fcgi: Don't re-encode SCRIPT_FILENAME when set via SetHandler. + PR 69203. [Yann Ylavic] \ No newline at end of file diff --git a/changes-entries/bz69233.txt b/changes-entries/bz69233.txt new file mode 100644 index 00000000000..ea1f7c72413 --- /dev/null +++ b/changes-entries/bz69233.txt @@ -0,0 +1,2 @@ + *) mod_proxy: Honor parameters of ProxyPassMatch workers with substitution + in the host name or port. PR 69233. [Yann Ylavic] \ No newline at end of file diff --git a/changes-entries/fix_proxy_determine_address.txt b/changes-entries/fix_proxy_determine_address.txt new file mode 100644 index 00000000000..9f5f33a35c1 --- /dev/null +++ b/changes-entries/fix_proxy_determine_address.txt @@ -0,0 +1,2 @@ + *) mod_proxy: Fix DNS requests and connections closed before the + configured addressTTL. BZ 69126. [Yann Ylavic] diff --git a/changes-entries/linux-log-tid.txt b/changes-entries/linux-log-tid.txt new file mode 100644 index 00000000000..9f6ce953977 --- /dev/null +++ b/changes-entries/linux-log-tid.txt @@ -0,0 +1 @@ + *) core: On Linux, log the real thread ID in error logs. [Joe Orton] diff --git a/changes-entries/md_2.4.26.txt b/changes-entries/md_2.4.26.txt new file mode 100644 index 00000000000..9b82f611f18 --- /dev/null +++ b/changes-entries/md_2.4.26.txt @@ -0,0 +1,10 @@ + * mod_md: + - Using OCSP stapling information to trigger certificate renewals. Proposed + by @frasertweedale. + - Added directive `MDCheckInterval` to control how often the server checks + for detected revocations. Added proposals for configurations in the + README.md chapter "Revocations". + - OCSP stapling: accept OCSP responses without a `nextUpdate` entry which is + allowed in RFC 6960. Treat those as having an update interval of 12 hours. + Added by @frasertweedale. + - Adapt OpenSSL usage to changes in their API. By Yann Ylavic. diff --git a/changes-entries/mod_tls_v0.9.0.txt b/changes-entries/mod_tls_v0.9.0.txt new file mode 100644 index 00000000000..b57bf0b7c4d --- /dev/null +++ b/changes-entries/mod_tls_v0.9.0.txt @@ -0,0 +1,2 @@ + * mod_tls: update version of rustls-ffi to v0.13.0. + [Daniel McCarney (@cpu}] diff --git a/changes-entries/pr68863.txt b/changes-entries/pr68863.txt new file mode 100644 index 00000000000..d45ffc708cc --- /dev/null +++ b/changes-entries/pr68863.txt @@ -0,0 +1,3 @@ + *) mod_ssl: Fix a regression that causes the default DH parameters for a key + no longer set and thus effectively disabling DH ciphers when no explicit + DH parameters are set. PR 68863 [Ruediger Pluem] diff --git a/changes-entries/pr68970.txt b/changes-entries/pr68970.txt new file mode 100644 index 00000000000..e598230a531 --- /dev/null +++ b/changes-entries/pr68970.txt @@ -0,0 +1,4 @@ + *) mod_cgi/mod_cgid: Reject CGI output with a Transfer-Encoding + header to avoid unexpected or corrupted responses. PR 68970. + [Joe Orton] + diff --git a/changes-entries/pr69160-again.txt b/changes-entries/pr69160-again.txt new file mode 100644 index 00000000000..067b10a98c0 --- /dev/null +++ b/changes-entries/pr69160-again.txt @@ -0,0 +1,2 @@ + *) mod_proxy: Avoid AH01059 parsing error for SetHandler "unix:" URLs + in (incomplete fix in 2.4.62). PR 69160. [Yann Ylavic] diff --git a/changes-entries/pr69160.txt b/changes-entries/pr69160.txt new file mode 100644 index 00000000000..6bf9942235a --- /dev/null +++ b/changes-entries/pr69160.txt @@ -0,0 +1,2 @@ + *) mod_proxy: Avoid AH01059 parsing error for SetHandler "unix:" URLs. + PR 69160 [Yann Ylavic] diff --git a/changes-entries/pr69168.txt b/changes-entries/pr69168.txt new file mode 100644 index 00000000000..c5304ec4242 --- /dev/null +++ b/changes-entries/pr69168.txt @@ -0,0 +1,3 @@ + *) mod_proxy: Fix canonicalisation and FCGI env (PATH_INFO, SCRIPT_NAME) for + "balancer:" URLs set via SetHandler, also allowing for "unix:" sockets + with BalancerMember(s). PR 69168. [Yann Ylavic] diff --git a/changes-entries/pr69197.txt b/changes-entries/pr69197.txt new file mode 100644 index 00000000000..1aa393a2ac3 --- /dev/null +++ b/changes-entries/pr69197.txt @@ -0,0 +1,2 @@ + *) mod_rewrite: Better question mark tracking to avoid UnsafeAllow3F. + PR 69197. [Yann Ylavic, Eric Covener] \ No newline at end of file diff --git a/changes-entries/restore_ssl_dump_with_3.txt b/changes-entries/restore_ssl_dump_with_3.txt new file mode 100644 index 00000000000..771f979743b --- /dev/null +++ b/changes-entries/restore_ssl_dump_with_3.txt @@ -0,0 +1,2 @@ + *) mod_ssl: Restore SSL dumping on trace7 loglevel with OpenSSL >= 3.0. + [Ruediger Pluem, Yann Ylavic] diff --git a/changes-entries/rewrite-perdir-unc.txt b/changes-entries/rewrite-perdir-unc.txt new file mode 100644 index 00000000000..ddc82ee8002 --- /dev/null +++ b/changes-entries/rewrite-perdir-unc.txt @@ -0,0 +1,3 @@ + *) mod_rewrite: Don't require [UNC] flag to preserve a leading // + added by applying the perdir prefix to the substitution. + [Ruediger Pluem, Eric Covener] diff --git a/changes-entries/worker_exit.txt b/changes-entries/worker_exit.txt new file mode 100644 index 00000000000..5a2e712e95d --- /dev/null +++ b/changes-entries/worker_exit.txt @@ -0,0 +1,2 @@ + *) mpm_worker: Fix possible warning (AH00045) about children processes not + terminating timely. [Yann Ylavic] diff --git a/configure.in b/configure.in index 719f8ac5c30..c56c8972afd 100644 --- a/configure.in +++ b/configure.in @@ -562,6 +562,12 @@ pid_t t = syscall(SYS_gettid); return t == -1 ? 1 : 0; }, fi fi +case ${host}X${ac_cv_func_gettid}X${ap_cv_gettid} in +*linux-*XyesX* | *linux-*XnoXyes) + AC_DEFINE(DEFAULT_LOG_TID, ["g"], [Define as default argument for thread id in error logging]) + ;; +esac + dnl ## Check for the tm_gmtoff field in struct tm to get the timezone diffs AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff, [AC_TRY_COMPILE([#include diff --git a/docs/conf/mime.types b/docs/conf/mime.types index 38bf4a68b9f..98a8e8451af 100644 --- a/docs/conf/mime.types +++ b/docs/conf/mime.types @@ -1538,6 +1538,7 @@ font/otf otf font/ttf ttf font/woff woff font/woff2 woff2 +image/avif avif image/bmp bmp image/cgm cgm # image/dicom-rle diff --git a/docs/log-message-tags/next-number b/docs/log-message-tags/next-number index 705464ad7a3..11cc50667a8 100644 --- a/docs/log-message-tags/next-number +++ b/docs/log-message-tags/next-number @@ -1 +1 @@ -10500 +10509 diff --git a/docs/manual/bind.html.fr.utf8 b/docs/manual/bind.html.fr.utf8 index f44f377112a..eeab8467952 100644 --- a/docs/manual/bind.html.fr.utf8 +++ b/docs/manual/bind.html.fr.utf8 @@ -247,7 +247,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/bind.html'; } })(window, document); //-->