APACHE 2.4 STATUS:                        -*- mode: text; coding: utf-8 -*-
Last modified at [$Date$]

The current version of this file can be found at:

  * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x/STATUS

The current development branch of this software can be found at:

  * http://svn.apache.org/repos/asf/httpd/httpd/trunk

Consult the following STATUS files for information on related projects:

  * http://svn.apache.org/repos/asf/apr/apr/trunk/STATUS
  * http://svn.apache.org/repos/asf/apr/apr/branches/1.4.x/STATUS
  * http://svn.apache.org/repos/asf/apr/apr-util/branches/1.4.x/STATUS
  * http://svn.apache.org/repos/asf/apr/apr/branches/1.5.x/STATUS
  * http://svn.apache.org/repos/asf/apr/apr-util/branches/1.5.x/STATUS
  * http://svn.apache.org/repos/asf/apr/apr/branches/1.6.x/STATUS
  * http://svn.apache.org/repos/asf/apr/apr-util/branches/1.6.x/STATUS

Patches considered for backport are noted in their branches' STATUS:

  * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x/STATUS
  * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x/STATUS


Release history:
    [NOTE that x.{odd}.z versions are strictly Alpha/Beta releases,
          while x.{even}.z versions are Stable/GA releases.]

    2.4.48  : In development
    2.4.47  : Tagged on April 22, 2021. Distributed on April 28, 2021,
              not announced.
    2.4.46  : Tagged on August 01, 2020. Released on August 07, 2020.
    2.4.45  : Tagged on July 29, 2020. Not released.
    2.4.44  : Tagged on July 28, 2020. Not released.
    2.4.43  : Tagged on March 26, 2020. Released on April 01, 2020.
    2.4.42  : Tagged on March 19, 2020. Not released.
    2.4.41  : Tagged on August 09, 2019. Released on August 14, 2019.
    2.4.40  : Tagged on August 02, 2019. Not released.
    2.4.39  : Tagged on March 27, 2019. Released on April 01, 2019.
    2.4.38  : Tagged on January 17, 2019. Released on January 22, 2019.
    2.4.37  : Tagged on October 18, 2018. Released on October 23, 2018.
    2.4.36  : Tagged on October 10, 2018. Not released.
    2.4.35  : Tagged on September 17, 2018. Released on September 22, 2018. 
    2.4.34  : Tagged on July 10, 2018. Released on July 16, 2018.
    2.4.33  : Tagged on March 17, 2018. Released on March 21, 2018.
    2.4.32  : Tagged on March 09, 2018. Distributed on March 15, 2018,
              not announced.
    2.4.31  : Tagged on March 03, 2018. Not released.
    2.4.30  : Tagged on February 19, 2018. Not released.
    2.4.29  : Tagged on October 17, 2017. Released on October 23, 2017.
    2.4.28  : Tagged on September 25, 2017. Released on October 5, 2017.
    2.4.27  : Tagged on July 6, 2017. Released on July 11, 2017.
    2.4.26  : Tagged on June 13, 2017. Released on June 19, 2017.
    2.4.25  : Tagged on December 16, 2016. Released on December 21, 2016.
    2.4.24  : Tagged on December 16, 2016. Not released.
    2.4.23  : Tagged on June 30, 2016. Released on July 05, 2016.
    2.4.22  : Tagged on June 20, 2016. Not released.
    2.4.21  : Tagged on June 16, 2016. Not released.
    2.4.20  : Tagged on April 4, 2016. Released on April 11, 2016.
    2.4.19  : Tagged on March 21, 2016. Not released.
    2.4.18  : Tagged on December 8, 2015. Released on December 14, 2015.
    2.4.17  : Tagged on October 9, 2015. Released October 13, 2015.
    2.4.16  : Tagged on July 9, 2015. Released July 15, 2015.
    2.4.15  : Tagged on June 19, 2015. Not released.
    2.4.14  : Tagged on June 11, 2015. Not released.
    2.4.13  : Tagged on June 4, 2015. Not released.
    2.4.12  : Tagged on January 22, 2015. Released January 29, 2015.
    2.4.11  : Tagged on January 15, 2015. Not released.
    2.4.10  : Tagged on July 15, 2014. Released July 21, 2014.
    2.4.9   : Tagged on March 13, 2014. Released on March 17, 2014.
    2.4.8   : Tagged on March 11, 2014. Not released.
    2.4.7   : Tagged on November 19, 2013. Released on November 25, 2013.
    2.4.6   : Tagged on July 15, 2013. Released July 22, 2013.
    2.4.5   : Tagged on July 11, 2013. Not released.
    2.4.4   : Tagged on February 18, 2013. Released February 25, 2013.
    2.4.3   : Tagged on August 17, 2012. Released August 18, 2012.
    2.4.2   : Tagged on April 5, 2012. Released April 17, 2012.
    2.4.1   : Tagged on February 13, 2012. Released February 21, 2012.
    2.4.0   : Tagged on January 16, 2012. Not released.
    2.3.16  : Tagged on December 15, 2011. Released December 19, 2011
    2.3.15  : Tagged on November 8, 2011. Released November 15, 2011.
    2.3.14  : Tagged on August 1, 2011. Released August 9, 2011.
    2.3.13  : Tagged on June 28, 2011. Not released.
    2.3.12  : Tagged on May 11, 2011. Released May 23, 2011.
    2.3.11  : Tagged on March 1, 2011. Released March 7, 2011.
    2.3.10  : Tagged on December 13, 2010. Released December 21, 2010.
    2.3.9   : Tagged on November 23, 2010. Not released.
    2.3.8   : Tagged on August 24, 2010. Released August 31, 2010.
    2.3.7   : Tagged on August 19, 2010. Not released.
    2.3.6   : Tagged on June 11, 2010. Released on June 21, 2010.
    2.3.5   : Tagged on January 21, 2010. Released on January 26, 2010.
    2.3.4   : Tagged on November 25, 2009. Released on December 8, 2009.
    2.3.3   : Tagged on November 11, 2009. Not released.
    2.3.2   : Tagged on March 23, 2009. Not released.
    2.3.1   : Tagged on January 2, 2009. Not released.
    2.3.0   : Tagged on December 6, 2008. Not released.

Contributors looking for a mission:

  * Just do an egrep on "TODO" or "XXX" in the source.

  * Review the bug database at: http://issues.apache.org/bugzilla/

  * Review the "PatchAvailable" bugs in the bug database:

    https://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Apache+httpd-2&keywords=PatchAvailable

    After testing, you can append a comment saying "Reviewed and tested".

  * Open bugs in the bug database.

  * See also the STATUS file in the docs/ directory, which lists documentation-specific TODO items.


CURRENT RELEASE NOTES:

  * Forward binary compatibility is expected of Apache 2.4.x releases, such
    that no MMN major number changes will occur after 2.4.1.  Such changes can
    only be made in the trunk.

  * All commits to branches/2.4.x must be reflected in SVN trunk,
    as well, if they apply.  Logical progression is commit to trunk
    then merge into branches/2.4.x, as applicable.

  * Current exceptions for RTC for this branch:
    . mod_proxy_http2
    . mod_md
    . documentation
    . non-Unix build
    . non-Unix, single-platform code
    . routine APLOGNO() backports
    . .gdbinit
    . Travis integration: .travis.yml and test/travis*.sh

RELEASE SHOWSTOPPERS:


PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
  [ start all new proposals below, under PATCHES PROPOSED. ]

  *) Common HTTP/1 parsing and early failure code between core and h2,
     including/adding StrictHostCheck.
     trunk patch: http://svn.apache.org/r1734009
                  http://svn.apache.org/r1734231
                  http://svn.apache.org/r1734281
                  http://svn.apache.org/r1838055
                  http://svn.apache.org/r1838079
                  http://svn.apache.org/r1840229
                  http://svn.apache.org/r1876664
                  http://svn.apache.org/r1876674
                  http://svn.apache.org/r1876784
                  http://svn.apache.org/r1879078
                  http://svn.apache.org/r1881620
                  http://svn.apache.org/r1887311
                  http://svn.apache.org/r1888871
     2.4.x patch: https://patch-diff.githubusercontent.com/raw/apache/httpd/pull/187.diff
                  (see https://github.com/apache/httpd/pull/187)
    +1: ylavic, icing, rpluem

PATCHES PROPOSED TO BACKPORT FROM TRUNK:
  [ New proposals should be added at the end of the list ]

 *) Add dav_get_provider(), dav_open_lockdb(), dav_close_lockdb() and
    dav_get_resource() to mod_dav.h.
    trunk patch: http://svn.apache.org/r1879305
                 http://svn.apache.org/r1879466
    2.4.x patch: https://svn.apache.org/repos/asf/httpd/httpd/patches/2.4.x/httpd-2.4-dav-functions2.patch
    +1: minfrin
    ylavic: patch is 404

  *) mod_xml2enc: Correctly handle Microsoft OOXML documents.  PR 64339
     trunk patch: http://svn.apache.org/r1884505
     2.4.x patch: svn merge -c 1884505 ^/httpd/httpd/trunk .
     +1: 
     jailletc36: there has been some discussion about how to fix the issue.
     I'm not sure that the commit above is the best solution
     and other alternatives have been discussed in PR 64339.  If r1884505
     is not the right fix, then it should be removed from trunk.
     Putting it here is a way to revive the discussion

  *) Buildsystem: Correctly record changes for the latest release in case
     there have been no changes at all for this release so far.
     Trunk version of patch:
        https://svn.apache.org/r1889806
     Backport version for 2.4.x of patch:
      Trunk version of patch works
      svn merge -c 1889806 ^/httpd/httpd/trunk .
     +1: rpluem,

PATCHES/ISSUES THAT ARE BEING WORKED
  [ New entries should be added at the START of the list ]

  *) mod_dav: Allow other modules to become providers and add ACLs
     to the DAV response.
     trunk patch: http://svn.apache.org/r1748322
                  http://svn.apache.org/r1824590
                  http://svn.apache.org/r1824596
     2.4.x: trunk works modulo CHANGES/MMN/log-message
     +1: minfrin, jim
     -1: rpluem: While we allow extensions of structures at the end in general
                 this is a specific case where the the design of the mod_dav
                 API clashes with this approach, as the API requires consumers
                 to create the public structs on their own, something we do
                 not "allow/encourage" otherwise in order to be able to do the
                 structure extension. I don't want to see consumers of this API
                 suffer from the clash we created.
                 See also:
                 https://lists.apache.org/thread.html/b924afe0fcc58a8636b753e630421bf6dc2080653a79575fd5fd641a@%3Cdev.httpd.apache.org%3E

  *) http: Don't remove the Content-Length of zero from a HEAD response if
     it comes from an origin server, module or script. Allow the previous
     behaviour (for legacy/buggy modules only, not origin) by also backporting
     the HttpContentLengthHeadZero directive (and also HttpExpectStrict which
     comes for free with the same commit).
     trunk patch: http://svn.apache.org/r1554303
                  http://svn.apache.org/r1678215
     2.4.x patch: http://people.apache.org/~ylavic/patches/httpd-2.4.x-preserve_head_cl_zero.patch
     +1: ylavic, jim
     ylavic: r1554303 issued a major MMN bump, but since the ABI change is two
             ints added at the end of core_server_config, the proposed merge
             does a minor bump only.
     minfrin: Two new directives need to be documented.

   * mod_proxy_http: Don't establish or reuse a backend connection before pre-
     fetching the request body, so to minimize the delay between it is supposed
     to be alive and the first bytes sent: this is a best effort to prevent the
     backend from closing because of idle or keepalive timeout in the meantime.
     Also, handle a new "proxy-flushall" environment variable which allows to
     flush any forwarded body data immediately. PR 56541+37920.
     trunk patch: http://svn.apache.org/r1656259
                  http://svn.apache.org/r1656359 (CHANGES entry)
     2.4.x patch: trunk works (modulo CHANGES, docs/log-message-tags)
     +1: ylavic
     -0: jim:  This seems to be a hit to normal performance, to handle an
               error and/or non-normal condition. The pre-fetch is
               expensive, and is always done, even before we know that
               the backend is available to rec' it. I understand the
               error described, but is the fix actually worth it (plus
               it seems to allow for a DDoS vector).
     ylavic: It seems to me that the problem is real since we reuse the
             connection before prefetching 16K (either controlled by the
             client, or by an input filter), we currently always prefetch
             these bytes already. Regarding performance I don't see any
             difference (more cycles) compared with the current code.
             However I think I failed to rebuild the header_brigade when
             the proxy loop is retried (ping), so I need to rework this.
             Do you think we'd better remove the prefetch, or maybe just
             make it nonblocking (by default)?
        jim: Non-blocking seems the best way to handle...

   * Support PCRE2 (10.x) in place of PCRE (8.x).
     Submitted by: wrowe, Petr Pisar [ppisar redhat.com]
     trunk patches:
         http://svn.apache.org/r1773454
         http://svn.apache.org/r1773741
         http://svn.apache.org/r1773742
         http://svn.apache.org/r1773839
         http://svn.apache.org/r1773870
         http://svn.apache.org/r1773882
     wrowe notes that the current code is too inefficient, owing to the fact
     that the ovector is a required allocation and is no longer allocated on
     the stack, by design. The correct fix is an apr userdata allocation on
     the appropriate pool, which would be thread-safe, but the actual API of
     ap_regexec[_len]() offers us no pool. We cannot associate that pool with
     the ap_regex_t, because a single regex may be used by many threads in
     parallel and is not thread-safe beyond initialization.
     So the only fix allowing us to use PCRE 10 in httpd 2.4 would be to write
     this as a thread safe storage buffer for the majority of cases (<10 $args)
     and we don't have a portable tls mechanism to do so.
     jorton: Adding ap_pregexec/_len which pass a pool would also work
             for internal users of this api; not sure if performance
             impact is significant from using malloc here.

PATCHES/ISSUES THAT ARE STALLED

  *) core: avoid duplicate headers when using ap_send_error_response.
           From trunk's testing the code seems running fine without any side
           effects, so adding this change in here to have more reviews.
     trunk patch: http://svn.apache.org/r1832092
     2.4.x patch: svn merge -c 1832092 ^/httpd/httpd/trunk .
     +1: elukey
     +0.5: icing: as I read this, the change preserves the special status of headers in
         ->err_headers_out, since swapping the tables makes former error headers normal ones.
         But it is hard to see of this was ever intentional or not. Lack of regressions
         in testing may meaning someone out there relies on the former, unverified
         behaviour. OTOH, it fixes and error you saw and added test for. So, I am cautiously
         for the change.
     elukey: PR 62025 seems another use case that gets fixed using this patch
             (still need to get feedback from the reporter but on my local env it solves the problem).
     elukey: If anybody has time to review this change it would be great, to know if it needs to be reverted,
             reworked, etc.. I would like to avoid a patch that is clearly wrong for some reviewer sitting here for
             months/years without any action item :)
     ylavic: will look at it ASAP..

   * core: Add ap_errorlog_provider to make ErrorLog logging modular. This
           backport keeps syslog logging as part of httpd core and only adds
           API to allow other modules to be used for error logging.
     trunk patch: http://svn.apache.org/r1525597
                  http://svn.apache.org/r1525664
                  http://svn.apache.org/r1525845
                  http://svn.apache.org/r1527003
                  http://svn.apache.org/r1527005
                  http://svn.apache.org/r1532344
                  http://svn.apache.org/r1539988
                  http://svn.apache.org/r1541029
                  http://svn.apache.org/r1543979
                  http://svn.apache.org/r1544156
                  http://svn.apache.org/r1626978
     2.4.x patch: http://people.apache.org/~jkaluza/patches/httpd-2.4.x-errorlog_provider.patch
     +1: jkaluza
     +1: covener w/ doc or code to fix syntax (providername:providerarg not supported like syslog or socacheproviders,
                 needs 2 args which is not valid in ErrorLog manual)
                 Note: This also fixes syslog logging dropping messages with NULL server_rec by reaching up into ap_server_conf
                 explicitly.

     trawick: nit: fix "writing" in "/* NULL if we are writing to syslog */"
              (sorry, haven't finished reviewing completely)
     jim: What is the status of this??

   * core: Add support for systemd socket activation.
     trunk patch: http://svn.apache.org/r1511033
                  http://svn.apache.org/r1608686
                  http://svn.apache.org/r1608694
                  http://svn.apache.org/r1608703
                  http://svn.apache.org/r1608721
                  http://svn.apache.org/r1608744
     2.4.x patch: http://people.apache.org/~jkaluza/patches/mod_systemd/httpd-2.4.x-socket-activation.patch
     +1: jkaluza
     elukey: Some reading context in https://lists.apache.org/list.html?dev@httpd.apache.org:gte=1M:systemd%20socket%20activation
             Since mod_systemd has been backported, it would be nice to add this feature to httpd 2.4 as well. Thoughts?

  * mod_proxy: Ensure network errors detected by the proxy are returned as
    504 Gateway Timeout as opposed to 502 Bad Gateway
    trunk patch: https://svn.apache.org/viewvc?view=revision&revision=1480058
    2.4.x patch: trunk patch works modulo CHANGES
    +1:
    -1: rpluem: This change is still disputed. See
        http://mail-archives.apache.org/mod_mbox/httpd-dev/201305.mbox/%3C1B16B9E3-87BA-4EEF-939C-7C7313B54714%40gbiv.com%3E

  * cross-compile: allow to provide CC_FOR_BUILD so that gen_test_char will be
    compiled by the build compiler instead of the host compiler.
    Also set CC_FOR_BUILD to 'cc' when cross-compilation is detected.
    Trunk patches: http://svn.apache.org/viewvc?view=revision&revision=1327907
                   http://svn.apache.org/viewvc?view=revision&revision=1328390
                   http://svn.apache.org/viewvc?view=revision&revision=1328714
    2.4 patch: http://people.apache.org/~fuankg/diffs/httpd-2.4.x-cross_compile.diff
    fuankg: on hold until we agree for a better and more simple solution ...

   * Makefile.win: Added copying of .vbs / .wsf CGIs to Windows install target.
                   Moved fixing of shebang to separate target so that it is
                   no longer executed by default and all CGIs remain inactive.
     trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1387984
                  http://svn.apache.org/viewvc?view=revision&revision=1421203
                  http://svn.apache.org/viewvc?view=revision&revision=1421591
     2.4.x patch: http://people.apache.org/~fuankg/diffs/httpd-2.4.x-Makefile.win.diff
     +1 fuankg, gsmith
     -.8: trawick
          This commit is essentially deciding that an httpd install on
          Windows now has printenv/testcgi written in 2 more languages.
          To the extent that the usefulness is that it shows how to make scripts
          of these types executable by httpd, I believe that the documentation
          is the proper place to solve that.  To the extent that the usefullness
          is to show how to implement a CGI in these particular languages, I believe
          that the httpd distribution and documentation in general is not the
          place for that.  Historically these types of scripts have caused problems
          for downstream vendorsas well as newbies (and sometimes the intersection
          of those two groups) who don't understand that these are information leaks
          once they are enabled, and the subtlety of the way they are disabled ("Apache
          messed up the first line; let me fix that") contributes to that.
     fuankg notes: I've just added a big warning to all CGI scripts which should now
          make absolutely clear that these CGIs are for testing purpose only - so those
          who enable those scripts with inserting the right shebang should be 100% aware
          of any risks (this should cover your last point).
     jim: trawick, does the above address your concerns?
     trawick: to some extent (somebody reading the script gets an idea)
          Why isn't the configuration requirement documented instead
          of described indirectly in a sample?
          Why are these new samples added to the install without three
          votes?  (I didn't veto it; put your name next to the two
          existing ones and I'll be satisfied that enough people
          considered this addition as an appropriate solution for a
          real httpd usability problem.)
     wrowe: I'd agree with trawick, and suggest that these scripts can begin
            their life somewhere in the manual/ tree.  This really seems like
            the place where /usr/share/httpd/examples/ would be useful, but
            there isn't an ordinary directory for that.  Since we want none
            of the scripts to function 'out of the box', what about a new
            cgi-examples/ dir alongside cgi-bin/? Otherwise manual/cgi/examples
            might work?

  *) mod_journald: Add new module mod_journald to log error logs into journald.
     trunk patch: http://svn.apache.org/r1610339
                  http://svn.apache.org/r1621806
                  http://svn.apache.org/r1812339
     2.4.x patch: http://people.apache.org/~jkaluza/patches/httpd-2.4.x-mod_journald.patch
                  http://svn.apache.org/r1812339
     +1: jkaluza, jim
     jchampion: Looks like the headers require GCC extensions to compile, so
                mod_journald can't be configured in maintainer mode (-std=c89).
                Can anyone else reproduce, or is it just my distro?
     ylavic: missing r1812339 for maintainer-mode/c89/-Werror compliance,
             needed if the above configure.in proposal gets backported.
             Note that r1812339 could be backported in any case, even if
             the above configure.in proposal does not get accepted.
