Merge ~ahasenack/ubuntu/+source/apache2:cosmic-apache2-2.4.33-3 into ubuntu/+source/apache2:debian/sid

Proposed by Andreas Hasenack on 2018-05-09
Status: Merged
Merge reported by: Andreas Hasenack
Merged at revision: f56d4eef5ef98217336fc95782e7af15a2290df4
Proposed branch: ~ahasenack/ubuntu/+source/apache2:cosmic-apache2-2.4.33-3
Merge into: ubuntu/+source/apache2:debian/sid
Diff against target: 442956 lines (+433840/-40)
1421 files modified
debian/apache2-bin.install (+1/-0)
debian/apache2-utils.ufw.profile (+14/-0)
debian/apache2.dirs (+1/-0)
debian/apache2.install (+1/-0)
debian/apache2.postrm (+1/-0)
debian/apache2.py (+48/-0)
debian/changelog (+1338/-0)
debian/control (+4/-27)
debian/index.html (+19/-12)
debian/patches/086_svn_cross_compiles (+118/-0)
debian/patches/series (+3/-0)
debian/rules (+3/-1)
debian/source/include-binaries (+1/-0)
debian/tests/check-http2 (+41/-0)
debian/tests/control (+4/-0)
docs/manual/style/latex/atbeginend.sty (+80/-0)
docs/manual/style/manualpage.dtd (+29/-0)
docs/manual/style/modulesynopsis.dtd (+92/-0)
docs/manual/style/scripts/MINIFY (+5/-0)
docs/manual/style/scripts/prettify.js (+1622/-0)
docs/manual/style/scripts/prettify.min.js (+124/-0)
docs/manual/style/sitemap.dtd (+42/-0)
docs/manual/style/version.ent (+24/-0)
docs/manual/suexec.html (+21/-0)
docs/manual/suexec.html.en (+643/-0)
docs/manual/suexec.html.fr (+689/-0)
docs/manual/suexec.html.ja.utf8 (+643/-0)
docs/manual/suexec.html.ko.euc-kr (+564/-0)
docs/manual/suexec.html.tr.utf8 (+583/-0)
docs/manual/upgrading.html (+9/-0)
docs/manual/upgrading.html.en (+537/-0)
docs/manual/upgrading.html.fr (+598/-0)
docs/manual/urlmapping.html (+21/-0)
docs/manual/urlmapping.html.en (+379/-0)
docs/manual/urlmapping.html.fr (+402/-0)
docs/manual/urlmapping.html.ja.utf8 (+318/-0)
docs/manual/urlmapping.html.ko.euc-kr (+277/-0)
docs/manual/urlmapping.html.tr.utf8 (+365/-0)
docs/manual/vhosts/details.html (+17/-0)
docs/manual/vhosts/details.html.en (+348/-0)
docs/manual/vhosts/details.html.fr (+369/-0)
docs/manual/vhosts/details.html.ko.euc-kr (+412/-0)
docs/manual/vhosts/details.html.tr.utf8 (+319/-0)
docs/manual/vhosts/examples.html (+21/-0)
docs/manual/vhosts/examples.html.en (+566/-0)
docs/manual/vhosts/examples.html.fr (+586/-0)
docs/manual/vhosts/examples.html.ja.utf8 (+680/-0)
docs/manual/vhosts/examples.html.ko.euc-kr (+657/-0)
docs/manual/vhosts/examples.html.tr.utf8 (+562/-0)
docs/manual/vhosts/fd-limits.html (+21/-0)
docs/manual/vhosts/fd-limits.html.en (+155/-0)
docs/manual/vhosts/fd-limits.html.fr (+167/-0)
docs/manual/vhosts/fd-limits.html.ja.utf8 (+157/-0)
docs/manual/vhosts/fd-limits.html.ko.euc-kr (+152/-0)
docs/manual/vhosts/fd-limits.html.tr.utf8 (+150/-0)
docs/manual/vhosts/index.html (+29/-0)
docs/manual/vhosts/index.html.de (+124/-0)
docs/manual/vhosts/index.html.en (+126/-0)
docs/manual/vhosts/index.html.fr (+127/-0)
docs/manual/vhosts/index.html.ja.utf8 (+120/-0)
docs/manual/vhosts/index.html.ko.euc-kr (+119/-0)
docs/manual/vhosts/index.html.tr.utf8 (+123/-0)
docs/manual/vhosts/index.html.zh-cn.utf8 (+105/-0)
docs/manual/vhosts/ip-based.html (+21/-0)
docs/manual/vhosts/ip-based.html.en (+210/-0)
docs/manual/vhosts/ip-based.html.fr (+213/-0)
docs/manual/vhosts/ip-based.html.ja.utf8 (+190/-0)
docs/manual/vhosts/ip-based.html.ko.euc-kr (+180/-0)
docs/manual/vhosts/ip-based.html.tr.utf8 (+211/-0)
docs/manual/vhosts/mass.html (+17/-0)
docs/manual/vhosts/mass.html.en (+348/-0)
docs/manual/vhosts/mass.html.fr (+363/-0)
docs/manual/vhosts/mass.html.ko.euc-kr (+453/-0)
docs/manual/vhosts/mass.html.tr.utf8 (+334/-0)
docs/manual/vhosts/name-based.html (+25/-0)
docs/manual/vhosts/name-based.html.de (+299/-0)
docs/manual/vhosts/name-based.html.en (+224/-0)
docs/manual/vhosts/name-based.html.fr (+267/-0)
docs/manual/vhosts/name-based.html.ja.utf8 (+303/-0)
docs/manual/vhosts/name-based.html.ko.euc-kr (+266/-0)
docs/manual/vhosts/name-based.html.tr.utf8 (+238/-0)
docs/server-status/README.md (+40/-0)
docs/server-status/server-status.lua (+1901/-0)
emacs-style (+12/-0)
httpd.dep (+68/-0)
httpd.dsp (+111/-0)
httpd.mak (+344/-0)
httpd.spec (+493/-0)
include/.indent.pro (+54/-0)
include/ap_compat.h (+30/-0)
include/ap_config.h (+206/-0)
include/ap_config_auto.h.in (+310/-0)
include/ap_config_layout.h.in (+64/-0)
include/ap_expr.h (+353/-0)
include/ap_hooks.h (+162/-0)
include/ap_listen.h (+163/-0)
include/ap_mmn.h (+554/-0)
include/ap_mpm.h (+235/-0)
include/ap_provider.h (+100/-0)
include/ap_regex.h (+275/-0)
include/ap_regkey.h (+219/-0)
include/ap_release.h (+83/-0)
include/ap_slotmem.h (+199/-0)
include/ap_socache.h (+230/-0)
include/apache_noprobes.h (+344/-0)
include/heartbeat.h (+60/-0)
include/http_config.h (+1408/-0)
include/http_connection.h (+168/-0)
include/http_core.h (+1049/-0)
include/http_log.h (+836/-0)
include/http_main.h (+88/-0)
include/http_protocol.h (+1021/-0)
include/http_request.h (+630/-0)
include/http_vhost.h (+119/-0)
include/httpd.h (+2405/-0)
include/mod_auth.h (+141/-0)
include/mod_core.h (+103/-0)
include/mod_request.h (+64/-0)
include/mpm_common.h (+470/-0)
include/scoreboard.h (+246/-0)
include/util_cfgtree.h (+98/-0)
include/util_charset.h (+72/-0)
include/util_cookies.h (+146/-0)
include/util_ebcdic.h (+92/-0)
include/util_fcgi.h (+280/-0)
include/util_filter.h (+639/-0)
include/util_ldap.h (+398/-0)
include/util_md5.h (+72/-0)
include/util_mutex.h (+223/-0)
include/util_script.h (+233/-0)
include/util_time.h (+117/-0)
include/util_varbuf.h (+197/-0)
include/util_xml.h (+51/-0)
libhttpd.dep (+2421/-0)
libhttpd.dsp (+846/-0)
libhttpd.mak (+1366/-0)
modules/Makefile.in (+6/-0)
modules/NWGNUmakefile (+121/-0)
modules/README (+67/-0)
modules/aaa/.indent.pro (+54/-0)
modules/aaa/Makefile.in (+3/-0)
modules/aaa/NWGNUaccesscompat (+248/-0)
modules/aaa/NWGNUallowmethods (+248/-0)
modules/aaa/NWGNUauthbasc (+248/-0)
modules/aaa/NWGNUauthdigt (+248/-0)
modules/aaa/NWGNUauthform (+250/-0)
modules/aaa/NWGNUauthnano (+248/-0)
modules/aaa/NWGNUauthndbd (+249/-0)
modules/aaa/NWGNUauthndbm (+248/-0)
modules/aaa/NWGNUauthnfil (+248/-0)
modules/aaa/NWGNUauthnsocache (+248/-0)
modules/aaa/NWGNUauthnzldap (+264/-0)
modules/aaa/NWGNUauthzdbd (+249/-0)
modules/aaa/NWGNUauthzdbm (+248/-0)
modules/aaa/NWGNUauthzgrp (+247/-0)
modules/aaa/NWGNUauthzusr (+247/-0)
modules/aaa/NWGNUmakefile (+270/-0)
modules/aaa/config.m4 (+84/-0)
modules/aaa/mod_access_compat.c (+377/-0)
modules/aaa/mod_access_compat.dep (+59/-0)
modules/aaa/mod_access_compat.dsp (+111/-0)
modules/aaa/mod_access_compat.mak (+353/-0)
modules/aaa/mod_allowmethods.c (+158/-0)
modules/aaa/mod_allowmethods.dep (+56/-0)
modules/aaa/mod_allowmethods.dsp (+111/-0)
modules/aaa/mod_allowmethods.mak (+353/-0)
modules/aaa/mod_auth_basic.c (+512/-0)
modules/aaa/mod_auth_basic.dep (+63/-0)
modules/aaa/mod_auth_basic.dsp (+111/-0)
modules/aaa/mod_auth_basic.mak (+353/-0)
modules/aaa/mod_auth_digest.c (+1976/-0)
modules/aaa/mod_auth_digest.dep (+68/-0)
modules/aaa/mod_auth_digest.dsp (+111/-0)
modules/aaa/mod_auth_digest.mak (+353/-0)
modules/aaa/mod_auth_form.c (+1333/-0)
modules/aaa/mod_auth_form.dep (+66/-0)
modules/aaa/mod_auth_form.dsp (+111/-0)
modules/aaa/mod_auth_form.mak (+353/-0)
modules/aaa/mod_authn_anon.c (+215/-0)
modules/aaa/mod_authn_anon.dep (+58/-0)
modules/aaa/mod_authn_anon.dsp (+111/-0)
modules/aaa/mod_authn_anon.mak (+381/-0)
modules/aaa/mod_authn_core.c (+386/-0)
modules/aaa/mod_authn_core.dep (+58/-0)
modules/aaa/mod_authn_core.dsp (+111/-0)
modules/aaa/mod_authn_core.mak (+381/-0)
modules/aaa/mod_authn_dbd.c (+309/-0)
modules/aaa/mod_authn_dbd.dep (+56/-0)
modules/aaa/mod_authn_dbd.dsp (+115/-0)
modules/aaa/mod_authn_dbd.mak (+409/-0)
modules/aaa/mod_authn_dbm.c (+208/-0)
modules/aaa/mod_authn_dbm.dep (+61/-0)
modules/aaa/mod_authn_dbm.dsp (+111/-0)
modules/aaa/mod_authn_dbm.mak (+381/-0)
modules/aaa/mod_authn_file.c (+194/-0)
modules/aaa/mod_authn_file.dep (+60/-0)
modules/aaa/mod_authn_file.dsp (+111/-0)
modules/aaa/mod_authn_file.mak (+381/-0)
modules/aaa/mod_authn_socache.c (+475/-0)
modules/aaa/mod_authn_socache.dep (+62/-0)
modules/aaa/mod_authn_socache.dsp (+111/-0)
modules/aaa/mod_authn_socache.mak (+353/-0)
modules/aaa/mod_authnz_fcgi.c (+1363/-0)
modules/aaa/mod_authnz_fcgi.dep (+61/-0)
modules/aaa/mod_authnz_fcgi.dsp (+119/-0)
modules/aaa/mod_authnz_fcgi.mak (+353/-0)
modules/aaa/mod_authnz_ldap.c (+1962/-0)
modules/aaa/mod_authnz_ldap.dep (+70/-0)
modules/aaa/mod_authnz_ldap.dsp (+111/-0)
modules/aaa/mod_authnz_ldap.mak (+381/-0)
modules/aaa/mod_authz_core.c (+1164/-0)
modules/aaa/mod_authz_core.dep (+60/-0)
modules/aaa/mod_authz_core.dsp (+111/-0)
modules/aaa/mod_authz_core.mak (+381/-0)
modules/aaa/mod_authz_dbd.c (+409/-0)
modules/aaa/mod_authz_dbd.dep (+61/-0)
modules/aaa/mod_authz_dbd.dsp (+119/-0)
modules/aaa/mod_authz_dbd.h (+44/-0)
modules/aaa/mod_authz_dbd.mak (+409/-0)
modules/aaa/mod_authz_dbm.c (+336/-0)
modules/aaa/mod_authz_dbm.dep (+62/-0)
modules/aaa/mod_authz_dbm.dsp (+111/-0)
modules/aaa/mod_authz_dbm.mak (+381/-0)
modules/aaa/mod_authz_groupfile.c (+331/-0)
modules/aaa/mod_authz_groupfile.dep (+61/-0)
modules/aaa/mod_authz_groupfile.dsp (+111/-0)
modules/aaa/mod_authz_groupfile.mak (+381/-0)
modules/aaa/mod_authz_host.c (+410/-0)
modules/aaa/mod_authz_host.dep (+60/-0)
modules/aaa/mod_authz_host.dsp (+111/-0)
modules/aaa/mod_authz_host.mak (+381/-0)
modules/aaa/mod_authz_owner.c (+189/-0)
modules/aaa/mod_authz_owner.dep (+59/-0)
modules/aaa/mod_authz_owner.dsp (+111/-0)
modules/aaa/mod_authz_owner.h (+27/-0)
modules/aaa/mod_authz_owner.mak (+381/-0)
modules/aaa/mod_authz_user.c (+146/-0)
modules/aaa/mod_authz_user.dep (+58/-0)
modules/aaa/mod_authz_user.dsp (+111/-0)
modules/aaa/mod_authz_user.mak (+381/-0)
modules/arch/netware/libprews.c (+79/-0)
modules/arch/netware/mod_netware.c (+206/-0)
modules/arch/netware/mod_nw_ssl.c (+1285/-0)
modules/arch/unix/Makefile.in (+3/-0)
modules/arch/unix/config5.m4 (+24/-0)
modules/arch/unix/mod_privileges.c (+588/-0)
modules/arch/unix/mod_unixd.c (+426/-0)
modules/arch/unix/mod_unixd.h (+41/-0)
modules/arch/win32/Makefile.in (+3/-0)
modules/arch/win32/config.m4 (+9/-0)
modules/arch/win32/mod_isapi.c (+1727/-0)
modules/arch/win32/mod_isapi.dep (+61/-0)
modules/arch/win32/mod_isapi.dsp (+115/-0)
modules/arch/win32/mod_isapi.h (+271/-0)
modules/arch/win32/mod_isapi.mak (+353/-0)
modules/arch/win32/mod_win32.c (+563/-0)
modules/cache/.indent.pro (+54/-0)
modules/cache/Makefile.in (+3/-0)
modules/cache/NWGNUcach_dsk (+262/-0)
modules/cache/NWGNUcach_socache (+263/-0)
modules/cache/NWGNUmakefile (+250/-0)
modules/cache/NWGNUmod_cach (+265/-0)
modules/cache/NWGNUsocachdbm (+261/-0)
modules/cache/NWGNUsocachmem (+261/-0)
modules/cache/NWGNUsocachshmcb (+261/-0)
modules/cache/cache_common.h (+56/-0)
modules/cache/cache_disk_common.h (+68/-0)
modules/cache/cache_socache_common.h (+57/-0)
modules/cache/cache_storage.c (+791/-0)
modules/cache/cache_storage.h (+76/-0)
modules/cache/cache_util.c (+1344/-0)
modules/cache/cache_util.h (+341/-0)
modules/cache/config.m4 (+142/-0)
modules/cache/mod_cache.c (+2717/-0)
modules/cache/mod_cache.dep (+194/-0)
modules/cache/mod_cache.dsp (+131/-0)
modules/cache/mod_cache.h (+192/-0)
modules/cache/mod_cache.mak (+370/-0)
modules/cache/mod_cache_disk.c (+1584/-0)
modules/cache/mod_cache_disk.dep (+59/-0)
modules/cache/mod_cache_disk.dsp (+115/-0)
modules/cache/mod_cache_disk.h (+91/-0)
modules/cache/mod_cache_disk.mak (+381/-0)
modules/cache/mod_cache_socache.c (+1543/-0)
modules/cache/mod_cache_socache.dep (+67/-0)
modules/cache/mod_cache_socache.dsp (+115/-0)
modules/cache/mod_cache_socache.mak (+381/-0)
modules/cache/mod_file_cache.c (+414/-0)
modules/cache/mod_file_cache.dep (+56/-0)
modules/cache/mod_file_cache.dsp (+111/-0)
modules/cache/mod_file_cache.exp (+1/-0)
modules/cache/mod_file_cache.mak (+353/-0)
modules/cache/mod_socache_dbm.c (+595/-0)
modules/cache/mod_socache_dbm.dep (+60/-0)
modules/cache/mod_socache_dbm.dsp (+111/-0)
modules/cache/mod_socache_dbm.mak (+353/-0)
modules/cache/mod_socache_dc.c (+198/-0)
modules/cache/mod_socache_dc.dep (+55/-0)
modules/cache/mod_socache_dc.dsp (+111/-0)
modules/cache/mod_socache_dc.mak (+353/-0)
modules/cache/mod_socache_memcache.c (+431/-0)
modules/cache/mod_socache_memcache.dep (+59/-0)
modules/cache/mod_socache_memcache.dsp (+111/-0)
modules/cache/mod_socache_memcache.mak (+353/-0)
modules/cache/mod_socache_shmcb.c (+1072/-0)
modules/cache/mod_socache_shmcb.dep (+56/-0)
modules/cache/mod_socache_shmcb.dsp (+111/-0)
modules/cache/mod_socache_shmcb.mak (+353/-0)
modules/cluster/Makefile.in (+3/-0)
modules/cluster/NWGNUmakefile (+246/-0)
modules/cluster/NWGNUmodheartbeat (+257/-0)
modules/cluster/NWGNUmodheartmonitor (+257/-0)
modules/cluster/README.heartbeat (+33/-0)
modules/cluster/README.heartmonitor (+30/-0)
modules/cluster/config5.m4 (+17/-0)
modules/cluster/mod_heartbeat.c (+228/-0)
modules/cluster/mod_heartbeat.dep (+55/-0)
modules/cluster/mod_heartbeat.dsp (+123/-0)
modules/cluster/mod_heartbeat.mak (+380/-0)
modules/cluster/mod_heartmonitor.c (+918/-0)
modules/cluster/mod_heartmonitor.dep (+63/-0)
modules/cluster/mod_heartmonitor.dsp (+123/-0)
modules/cluster/mod_heartmonitor.mak (+380/-0)
modules/config7.m4 (+56/-0)
modules/core/Makefile.in (+3/-0)
modules/core/NWGNUmakefile (+257/-0)
modules/core/config.m4 (+60/-0)
modules/core/mod_macro.c (+950/-0)
modules/core/mod_macro.dep (+45/-0)
modules/core/mod_macro.dsp (+111/-0)
modules/core/mod_macro.mak (+353/-0)
modules/core/mod_so.c (+442/-0)
modules/core/mod_so.h (+38/-0)
modules/core/mod_watchdog.c (+723/-0)
modules/core/mod_watchdog.dep (+59/-0)
modules/core/mod_watchdog.dsp (+115/-0)
modules/core/mod_watchdog.h (+213/-0)
modules/core/mod_watchdog.mak (+353/-0)
modules/core/test/Makefile (+67/-0)
modules/core/test/conf/inc63_1.conf (+5/-0)
modules/core/test/conf/inc63_2.conf (+3/-0)
modules/core/test/conf/test01.conf (+3/-0)
modules/core/test/conf/test02.conf (+3/-0)
modules/core/test/conf/test03.conf (+5/-0)
modules/core/test/conf/test04.conf (+5/-0)
modules/core/test/conf/test05.conf (+5/-0)
modules/core/test/conf/test06.conf (+6/-0)
modules/core/test/conf/test07.conf (+3/-0)
modules/core/test/conf/test08.conf (+3/-0)
modules/core/test/conf/test09.conf (+6/-0)
modules/core/test/conf/test10.conf (+10/-0)
modules/core/test/conf/test11.conf (+15/-0)
modules/core/test/conf/test12.conf (+12/-0)
modules/core/test/conf/test13.conf (+18/-0)
modules/core/test/conf/test14.conf (+23/-0)
modules/core/test/conf/test15.conf (+9/-0)
modules/core/test/conf/test16.conf (+11/-0)
modules/core/test/conf/test17.conf (+10/-0)
modules/core/test/conf/test18.conf (+10/-0)
modules/core/test/conf/test19.conf (+26/-0)
modules/core/test/conf/test20.conf (+11/-0)
modules/core/test/conf/test21.conf (+11/-0)
modules/core/test/conf/test22.conf (+11/-0)
modules/core/test/conf/test23.conf (+15/-0)
modules/core/test/conf/test24.conf (+23/-0)
modules/core/test/conf/test25.conf (+27/-0)
modules/core/test/conf/test26.conf (+19/-0)
modules/core/test/conf/test27.conf (+22/-0)
modules/core/test/conf/test28.conf (+13/-0)
modules/core/test/conf/test29.conf (+10/-0)
modules/core/test/conf/test30.conf (+12/-0)
modules/core/test/conf/test31.conf (+16/-0)
modules/core/test/conf/test32.conf (+7/-0)
modules/core/test/conf/test33.conf (+3/-0)
modules/core/test/conf/test34.conf (+14/-0)
modules/core/test/conf/test35.conf (+10/-0)
modules/core/test/conf/test36.conf (+12/-0)
modules/core/test/conf/test37.conf (+7/-0)
modules/core/test/conf/test38.conf (+10/-0)
modules/core/test/conf/test39.conf (+23/-0)
modules/core/test/conf/test40.conf (+33/-0)
modules/core/test/conf/test41.conf (+20/-0)
modules/core/test/conf/test42.conf (+13/-0)
modules/core/test/conf/test43.conf (+29/-0)
modules/core/test/conf/test44.conf (+19/-0)
modules/core/test/conf/test45.conf (+7/-0)
modules/core/test/conf/test46.conf (+11/-0)
modules/core/test/conf/test47.conf (+15/-0)
modules/core/test/conf/test48.conf (+23/-0)
modules/core/test/conf/test49.conf (+2/-0)
modules/core/test/conf/test50.conf (+5/-0)
modules/core/test/conf/test51.conf (+9/-0)
modules/core/test/conf/test52.conf (+8/-0)
modules/core/test/conf/test53.conf (+2/-0)
modules/core/test/conf/test54.conf (+6/-0)
modules/core/test/conf/test55.conf (+11/-0)
modules/core/test/conf/test56.conf (+18/-0)
modules/core/test/conf/test57.conf (+4/-0)
modules/core/test/conf/test58.conf (+4/-0)
modules/core/test/conf/test59.conf (+4/-0)
modules/core/test/conf/test60.conf (+17/-0)
modules/core/test/conf/test61.conf (+18/-0)
modules/core/test/conf/test62.conf (+25/-0)
modules/core/test/conf/test63.conf (+9/-0)
modules/core/test/conf/test64.conf (+5/-0)
modules/core/test/conf/test65.conf (+11/-0)
modules/core/test/conf/test66.conf (+7/-0)
modules/core/test/conf/test67.conf (+1/-0)
modules/core/test/conf/test68.conf (+5/-0)
modules/core/test/conf/test69.conf (+14/-0)
modules/core/test/ref/test01.out (+3/-0)
modules/core/test/ref/test02.out (+3/-0)
modules/core/test/ref/test03.out (+3/-0)
modules/core/test/ref/test04.out (+3/-0)
modules/core/test/ref/test05.out (+3/-0)
modules/core/test/ref/test06.out (+3/-0)
modules/core/test/ref/test07.out (+3/-0)
modules/core/test/ref/test08.out (+3/-0)
modules/core/test/ref/test09.out (+3/-0)
modules/core/test/ref/test10.out (+3/-0)
modules/core/test/ref/test11.out (+6/-0)
modules/core/test/ref/test12.out (+7/-0)
modules/core/test/ref/test13.out (+8/-0)
modules/core/test/ref/test14.out (+14/-0)
modules/core/test/ref/test15.out (+6/-0)
modules/core/test/ref/test16.out (+5/-0)
modules/core/test/ref/test17.out (+7/-0)
modules/core/test/ref/test18.out (+7/-0)
modules/core/test/ref/test19.out (+9/-0)
modules/core/test/ref/test20.out (+4/-0)
modules/core/test/ref/test21.out (+5/-0)
modules/core/test/ref/test22.out (+6/-0)
modules/core/test/ref/test23.out (+7/-0)
modules/core/test/ref/test24.out (+8/-0)
modules/core/test/ref/test25.out (+9/-0)
modules/core/test/ref/test26.out (+11/-0)
modules/core/test/ref/test27.out (+8/-0)
modules/core/test/ref/test28.out (+6/-0)
modules/core/test/ref/test29.out (+4/-0)
modules/core/test/ref/test30.out (+7/-0)
modules/core/test/ref/test31.out (+23/-0)
modules/core/test/ref/test32.out (+3/-0)
modules/core/test/ref/test33.out (+3/-0)
modules/core/test/ref/test34.out (+13/-0)
modules/core/test/ref/test35.out (+13/-0)
modules/core/test/ref/test36.out (+20/-0)
modules/core/test/ref/test37.out (+3/-0)
modules/core/test/ref/test38.out (+6/-0)
modules/core/test/ref/test39.out (+7/-0)
modules/core/test/ref/test40.out (+18/-0)
modules/core/test/ref/test41.out (+9/-0)
modules/core/test/ref/test42.out (+15/-0)
modules/core/test/ref/test43.out (+8/-0)
modules/core/test/ref/test44.out (+5/-0)
modules/core/test/ref/test45.out (+19/-0)
modules/core/test/ref/test46.out (+9/-0)
modules/core/test/ref/test47.out (+8/-0)
modules/core/test/ref/test48.out (+20/-0)
modules/core/test/ref/test49.out (+3/-0)
modules/core/test/ref/test50.out (+3/-0)
modules/core/test/ref/test51.out (+3/-0)
modules/core/test/ref/test52.out (+6/-0)
modules/core/test/ref/test53.out (+3/-0)
modules/core/test/ref/test54.out (+6/-0)
modules/core/test/ref/test55.out (+8/-0)
modules/core/test/ref/test56.out (+12/-0)
modules/core/test/ref/test57.out (+3/-0)
modules/core/test/ref/test58.out (+3/-0)
modules/core/test/ref/test59.out (+3/-0)
modules/core/test/ref/test60.out (+15/-0)
modules/core/test/ref/test61.out (+9/-0)
modules/core/test/ref/test62.out (+15/-0)
modules/core/test/ref/test63.out (+10/-0)
modules/core/test/ref/test64.out (+7/-0)
modules/core/test/ref/test65.out (+7/-0)
modules/core/test/ref/test66.out (+7/-0)
modules/core/test/ref/test67.out (+5/-0)
modules/core/test/ref/test68.out (+6/-0)
modules/core/test/ref/test69.out (+10/-0)
modules/database/Makefile.in (+3/-0)
modules/database/NWGNUmakefile (+262/-0)
modules/database/config.m4 (+8/-0)
modules/database/mod_dbd.c (+992/-0)
modules/database/mod_dbd.dep (+58/-0)
modules/database/mod_dbd.dsp (+115/-0)
modules/database/mod_dbd.h (+123/-0)
modules/database/mod_dbd.mak (+353/-0)
modules/dav/fs/Makefile.in (+3/-0)
modules/dav/fs/NWGNUmakefile (+269/-0)
modules/dav/fs/config6.m4 (+23/-0)
modules/dav/fs/dbm.c (+771/-0)
modules/dav/fs/lock.c (+1445/-0)
modules/dav/fs/mod_dav_fs.c (+108/-0)
modules/dav/fs/mod_dav_fs.dep (+203/-0)
modules/dav/fs/mod_dav_fs.dsp (+135/-0)
modules/dav/fs/mod_dav_fs.mak (+407/-0)
modules/dav/fs/repos.c (+2254/-0)
modules/dav/fs/repos.h (+84/-0)
modules/dav/lock/Makefile.in (+3/-0)
modules/dav/lock/NWGNUmakefile (+259/-0)
modules/dav/lock/config6.m4 (+17/-0)
modules/dav/lock/locks.c (+1211/-0)
modules/dav/lock/locks.h (+33/-0)
modules/dav/lock/mod_dav_lock.c (+104/-0)
modules/dav/lock/mod_dav_lock.dep (+100/-0)
modules/dav/lock/mod_dav_lock.dsp (+127/-0)
modules/dav/lock/mod_dav_lock.mak (+389/-0)
modules/dav/main/Makefile.in (+3/-0)
modules/dav/main/NWGNUmakefile (+268/-0)
modules/dav/main/config5.m4 (+21/-0)
modules/dav/main/liveprop.c (+140/-0)
modules/dav/main/mod_dav.c (+4946/-0)
modules/dav/main/mod_dav.dep (+354/-0)
modules/dav/main/mod_dav.dsp (+147/-0)
modules/dav/main/mod_dav.h (+2553/-0)
modules/dav/main/mod_dav.mak (+406/-0)
modules/dav/main/props.c (+1125/-0)
modules/dav/main/providers.c (+58/-0)
modules/dav/main/std_liveprop.c (+226/-0)
modules/dav/main/util.c (+2152/-0)
modules/dav/main/util_lock.c (+798/-0)
modules/debugging/Makefile.in (+3/-0)
modules/debugging/NWGNUmakefile (+246/-0)
modules/debugging/NWGNUmodbucketeer (+248/-0)
modules/debugging/NWGNUmoddumpio (+248/-0)
modules/debugging/README (+1/-0)
modules/debugging/config.m4 (+7/-0)
modules/debugging/mod_bucketeer.c (+187/-0)
modules/debugging/mod_bucketeer.dep (+53/-0)
modules/debugging/mod_bucketeer.dsp (+111/-0)
modules/debugging/mod_bucketeer.mak (+353/-0)
modules/debugging/mod_dumpio.c (+250/-0)
modules/debugging/mod_dumpio.dep (+50/-0)
modules/debugging/mod_dumpio.dsp (+111/-0)
modules/debugging/mod_dumpio.mak (+353/-0)
modules/echo/.indent.pro (+54/-0)
modules/echo/Makefile.in (+3/-0)
modules/echo/NWGNUmakefile (+257/-0)
modules/echo/config.m4 (+9/-0)
modules/echo/mod_echo.c (+218/-0)
modules/echo/mod_echo.dep (+56/-0)
modules/echo/mod_echo.dsp (+111/-0)
modules/echo/mod_echo.mak (+353/-0)
modules/examples/Makefile.in (+3/-0)
modules/examples/NWGNUcase_flt (+256/-0)
modules/examples/NWGNUcase_flt_in (+256/-0)
modules/examples/NWGNUexample_hooks (+257/-0)
modules/examples/NWGNUexample_ipc (+257/-0)
modules/examples/NWGNUmakefile (+257/-0)
modules/examples/README (+54/-0)
modules/examples/config.m4 (+9/-0)
modules/examples/mod_case_filter.c (+139/-0)
modules/examples/mod_case_filter.dep (+46/-0)
modules/examples/mod_case_filter.dsp (+111/-0)
modules/examples/mod_case_filter.mak (+353/-0)
modules/examples/mod_case_filter_in.c (+160/-0)
modules/examples/mod_case_filter_in.dep (+46/-0)
modules/examples/mod_case_filter_in.dsp (+111/-0)
modules/examples/mod_case_filter_in.mak (+353/-0)
modules/examples/mod_example_hooks.c (+1534/-0)
modules/examples/mod_example_hooks.dep (+62/-0)
modules/examples/mod_example_hooks.dsp (+111/-0)
modules/examples/mod_example_hooks.mak (+353/-0)
modules/examples/mod_example_ipc.c (+356/-0)
modules/examples/mod_example_ipc.dep (+56/-0)
modules/examples/mod_example_ipc.dsp (+111/-0)
modules/examples/mod_example_ipc.mak (+353/-0)
modules/experimental/.indent.pro (+54/-0)
modules/experimental/Makefile.in (+3/-0)
modules/experimental/NWGNUmakefile (+253/-0)
modules/experimental/config.m4 (+4/-0)
modules/filters/.indent.pro (+54/-0)
modules/filters/Makefile.in (+3/-0)
modules/filters/NWGNUcharsetl (+257/-0)
modules/filters/NWGNUdeflate (+279/-0)
modules/filters/NWGNUextfiltr (+248/-0)
modules/filters/NWGNUmakefile (+273/-0)
modules/filters/NWGNUmod_data (+248/-0)
modules/filters/NWGNUmod_filter (+248/-0)
modules/filters/NWGNUmod_request (+248/-0)
modules/filters/NWGNUmodbuffer (+256/-0)
modules/filters/NWGNUmodsed (+259/-0)
modules/filters/NWGNUproxyhtml (+261/-0)
modules/filters/NWGNUratelimit (+256/-0)
modules/filters/NWGNUreflector (+256/-0)
modules/filters/NWGNUreqtimeout (+256/-0)
modules/filters/NWGNUsubstitute (+256/-0)
modules/filters/NWGNUxml2enc (+258/-0)
modules/filters/config.m4 (+197/-0)
modules/filters/libsed.h (+172/-0)
modules/filters/mod_brotli.c (+592/-0)
modules/filters/mod_brotli.dep (+45/-0)
modules/filters/mod_brotli.dsp (+111/-0)
modules/filters/mod_brotli.mak (+353/-0)
modules/filters/mod_buffer.c (+353/-0)
modules/filters/mod_buffer.dep (+48/-0)
modules/filters/mod_buffer.dsp (+111/-0)
modules/filters/mod_buffer.mak (+353/-0)
modules/filters/mod_charset_lite.c (+1142/-0)
modules/filters/mod_charset_lite.dep (+60/-0)
modules/filters/mod_charset_lite.dsp (+111/-0)
modules/filters/mod_charset_lite.exp (+1/-0)
modules/filters/mod_charset_lite.mak (+353/-0)
modules/filters/mod_data.c (+255/-0)
modules/filters/mod_data.dep (+55/-0)
modules/filters/mod_data.dsp (+111/-0)
modules/filters/mod_data.mak (+353/-0)
modules/filters/mod_deflate.c (+1912/-0)
modules/filters/mod_deflate.dep (+52/-0)
modules/filters/mod_deflate.dsp (+111/-0)
modules/filters/mod_deflate.exp (+1/-0)
modules/filters/mod_deflate.mak (+353/-0)
modules/filters/mod_ext_filter.c (+956/-0)
modules/filters/mod_ext_filter.dep (+58/-0)
modules/filters/mod_ext_filter.dsp (+111/-0)
modules/filters/mod_ext_filter.exp (+1/-0)
modules/filters/mod_ext_filter.mak (+353/-0)
modules/filters/mod_filter.c (+767/-0)
modules/filters/mod_filter.dep (+50/-0)
modules/filters/mod_filter.dsp (+111/-0)
modules/filters/mod_filter.mak (+353/-0)
modules/filters/mod_include.c (+4236/-0)
modules/filters/mod_include.dep (+63/-0)
modules/filters/mod_include.dsp (+115/-0)
modules/filters/mod_include.exp (+1/-0)
modules/filters/mod_include.h (+120/-0)
modules/filters/mod_include.mak (+353/-0)
modules/filters/mod_proxy_html.c (+1329/-0)
modules/filters/mod_proxy_html.dep (+58/-0)
modules/filters/mod_proxy_html.dsp (+123/-0)
modules/filters/mod_proxy_html.mak (+352/-0)
modules/filters/mod_ratelimit.c (+356/-0)
modules/filters/mod_ratelimit.dep (+45/-0)
modules/filters/mod_ratelimit.dsp (+115/-0)
modules/filters/mod_ratelimit.h (+51/-0)
modules/filters/mod_ratelimit.mak (+353/-0)
modules/filters/mod_reflector.c (+226/-0)
modules/filters/mod_reflector.dep (+57/-0)
modules/filters/mod_reflector.dsp (+111/-0)
modules/filters/mod_reflector.mak (+353/-0)
modules/filters/mod_reqtimeout.c (+657/-0)
modules/filters/mod_reqtimeout.dep (+58/-0)
modules/filters/mod_reqtimeout.dsp (+111/-0)
modules/filters/mod_reqtimeout.mak (+353/-0)
modules/filters/mod_request.c (+397/-0)
modules/filters/mod_request.dep (+55/-0)
modules/filters/mod_request.dsp (+115/-0)
modules/filters/mod_request.mak (+353/-0)
modules/filters/mod_sed.c (+537/-0)
modules/filters/mod_sed.dep (+109/-0)
modules/filters/mod_sed.dsp (+135/-0)
modules/filters/mod_sed.mak (+380/-0)
modules/filters/mod_substitute.c (+730/-0)
modules/filters/mod_substitute.dep (+53/-0)
modules/filters/mod_substitute.dsp (+111/-0)
modules/filters/mod_substitute.mak (+353/-0)
modules/filters/mod_xml2enc.c (+631/-0)
modules/filters/mod_xml2enc.dep (+54/-0)
modules/filters/mod_xml2enc.dsp (+123/-0)
modules/filters/mod_xml2enc.h (+55/-0)
modules/filters/mod_xml2enc.mak (+352/-0)
modules/filters/regexp.c (+599/-0)
modules/filters/regexp.h (+112/-0)
modules/filters/sed.h (+61/-0)
modules/filters/sed0.c (+1026/-0)
modules/filters/sed1.c (+1020/-0)
modules/generators/.indent.pro (+54/-0)
modules/generators/Makefile.in (+3/-0)
modules/generators/NWGNUautoindex (+249/-0)
modules/generators/NWGNUinfo (+248/-0)
modules/generators/NWGNUmakefile (+249/-0)
modules/generators/NWGNUmod_asis (+249/-0)
modules/generators/NWGNUmod_cgi (+249/-0)
modules/generators/NWGNUstatus (+248/-0)
modules/generators/config5.m4 (+81/-0)
modules/generators/mod_asis.c (+128/-0)
modules/generators/mod_asis.dep (+56/-0)
modules/generators/mod_asis.dsp (+111/-0)
modules/generators/mod_asis.exp (+1/-0)
modules/generators/mod_asis.mak (+353/-0)
modules/generators/mod_autoindex.c (+2348/-0)
modules/generators/mod_autoindex.dep (+61/-0)
modules/generators/mod_autoindex.dsp (+111/-0)
modules/generators/mod_autoindex.exp (+1/-0)
modules/generators/mod_autoindex.mak (+353/-0)
modules/generators/mod_cgi.c (+1281/-0)
modules/generators/mod_cgi.dep (+64/-0)
modules/generators/mod_cgi.dsp (+115/-0)
modules/generators/mod_cgi.exp (+1/-0)
modules/generators/mod_cgi.h (+67/-0)
modules/generators/mod_cgi.mak (+353/-0)
modules/generators/mod_cgid.c (+1980/-0)
modules/generators/mod_cgid.exp (+1/-0)
modules/generators/mod_info.c (+1011/-0)
modules/generators/mod_info.dep (+66/-0)
modules/generators/mod_info.dsp (+111/-0)
modules/generators/mod_info.exp (+1/-0)
modules/generators/mod_info.mak (+353/-0)
modules/generators/mod_status.c (+1014/-0)
modules/generators/mod_status.dep (+60/-0)
modules/generators/mod_status.dsp (+111/-0)
modules/generators/mod_status.exp (+1/-0)
modules/generators/mod_status.h (+64/-0)
modules/generators/mod_status.mak (+353/-0)
modules/generators/mod_suexec.c (+139/-0)
modules/generators/mod_suexec.h (+33/-0)
modules/http/.indent.pro (+54/-0)
modules/http/Makefile.in (+3/-0)
modules/http/byterange_filter.c (+611/-0)
modules/http/chunk_filter.c (+196/-0)
modules/http/config.m4 (+20/-0)
modules/http/http_core.c (+328/-0)
modules/http/http_etag.c (+220/-0)
modules/http/http_filters.c (+1907/-0)
modules/http/http_protocol.c (+1690/-0)
modules/http/http_request.c (+843/-0)
modules/http/mod_mime.c (+1026/-0)
modules/http/mod_mime.dep (+55/-0)
modules/http/mod_mime.dsp (+111/-0)
modules/http/mod_mime.exp (+1/-0)
modules/http/mod_mime.mak (+353/-0)
modules/http2/.gitignore (+35/-0)
modules/http2/Makefile.in (+20/-0)
modules/http2/NWGNUmakefile (+246/-0)
modules/http2/NWGNUmod_http2 (+395/-0)
modules/http2/NWGNUproxyht2 (+288/-0)
modules/http2/README.h2 (+70/-0)
modules/http2/config2.m4 (+235/-0)
modules/http2/h2.h (+161/-0)
modules/http2/h2_alt_svc.c (+131/-0)
modules/http2/h2_alt_svc.h (+40/-0)
modules/http2/h2_bucket_beam.c (+1283/-0)
modules/http2/h2_bucket_beam.h (+406/-0)
modules/http2/h2_bucket_eos.c (+127/-0)
modules/http2/h2_bucket_eos.h (+32/-0)
modules/http2/h2_config.c (+678/-0)
modules/http2/h2_config.h (+104/-0)
modules/http2/h2_conn.c (+354/-0)
modules/http2/h2_conn.h (+77/-0)
modules/http2/h2_conn_io.c (+389/-0)
modules/http2/h2_conn_io.h (+77/-0)
modules/http2/h2_ctx.c (+121/-0)
modules/http2/h2_ctx.h (+78/-0)
modules/http2/h2_filter.c (+566/-0)
modules/http2/h2_filter.h (+73/-0)
modules/http2/h2_from_h1.c (+863/-0)
modules/http2/h2_from_h1.h (+50/-0)
modules/http2/h2_h2.c (+765/-0)
modules/http2/h2_h2.h (+79/-0)
modules/http2/h2_headers.c (+178/-0)
modules/http2/h2_headers.h (+77/-0)
modules/http2/h2_mplx.c (+1272/-0)
modules/http2/h2_mplx.h (+330/-0)
modules/http2/h2_ngn_shed.c (+392/-0)
modules/http2/h2_ngn_shed.h (+79/-0)
modules/http2/h2_private.h (+28/-0)
modules/http2/h2_proxy_session.c (+1584/-0)
modules/http2/h2_proxy_session.h (+128/-0)
modules/http2/h2_proxy_util.c (+1337/-0)
modules/http2/h2_proxy_util.h (+256/-0)
modules/http2/h2_push.c (+1060/-0)
modules/http2/h2_push.h (+120/-0)
modules/http2/h2_request.c (+338/-0)
modules/http2/h2_request.h (+48/-0)
modules/http2/h2_session.c (+2289/-0)
modules/http2/h2_session.h (+225/-0)
modules/http2/h2_stream.c (+1074/-0)
modules/http2/h2_stream.h (+306/-0)
modules/http2/h2_switch.c (+194/-0)
modules/http2/h2_switch.h (+30/-0)
modules/http2/h2_task.c (+762/-0)
modules/http2/h2_task.h (+127/-0)
modules/http2/h2_util.c (+2011/-0)
modules/http2/h2_util.h (+544/-0)
modules/http2/h2_version.h (+41/-0)
modules/http2/h2_workers.c (+383/-0)
modules/http2/h2_workers.h (+82/-0)
modules/http2/mod_http2.c (+387/-0)
modules/http2/mod_http2.dep (+1433/-0)
modules/http2/mod_http2.dsp (+195/-0)
modules/http2/mod_http2.h (+96/-0)
modules/http2/mod_http2.mak (+542/-0)
modules/http2/mod_proxy_http2.c (+674/-0)
modules/http2/mod_proxy_http2.dep (+208/-0)
modules/http2/mod_proxy_http2.dsp (+119/-0)
modules/http2/mod_proxy_http2.h (+21/-0)
modules/http2/mod_proxy_http2.mak (+427/-0)
modules/ldap/Makefile.in (+3/-0)
modules/ldap/NWGNUmakefile (+264/-0)
modules/ldap/README.ldap (+47/-0)
modules/ldap/config.m4 (+25/-0)
modules/ldap/mod_ldap.dep (+192/-0)
modules/ldap/mod_ldap.dsp (+127/-0)
modules/ldap/mod_ldap.mak (+371/-0)
modules/ldap/util_ldap.c (+3221/-0)
modules/ldap/util_ldap_cache.c (+467/-0)
modules/ldap/util_ldap_cache.h (+206/-0)
modules/ldap/util_ldap_cache_mgr.c (+901/-0)
modules/loggers/.indent.pro (+54/-0)
modules/loggers/Makefile.in (+3/-0)
modules/loggers/NWGNUforensic (+258/-0)
modules/loggers/NWGNUlogdebug (+258/-0)
modules/loggers/NWGNUmakefile (+247/-0)
modules/loggers/NWGNUmodlogio (+258/-0)
modules/loggers/config.m4 (+20/-0)
modules/loggers/mod_log_config.c (+1858/-0)
modules/loggers/mod_log_config.dep (+62/-0)
modules/loggers/mod_log_config.dsp (+111/-0)
modules/loggers/mod_log_config.exp (+1/-0)
modules/loggers/mod_log_config.h (+74/-0)
modules/loggers/mod_log_config.mak (+353/-0)
modules/loggers/mod_log_debug.c (+287/-0)
modules/loggers/mod_log_debug.dep (+54/-0)
modules/loggers/mod_log_debug.dsp (+111/-0)
modules/loggers/mod_log_debug.mak (+325/-0)
modules/loggers/mod_log_forensic.c (+289/-0)
modules/loggers/mod_log_forensic.dep (+53/-0)
modules/loggers/mod_log_forensic.dsp (+111/-0)
modules/loggers/mod_log_forensic.exp (+1/-0)
modules/loggers/mod_log_forensic.mak (+353/-0)
modules/loggers/mod_logio.c (+284/-0)
modules/loggers/mod_logio.dep (+59/-0)
modules/loggers/mod_logio.dsp (+111/-0)
modules/loggers/mod_logio.mak (+353/-0)
modules/lua/Makefile.in (+3/-0)
modules/lua/NWGNUmakefile (+287/-0)
modules/lua/README (+54/-0)
modules/lua/config.m4 (+121/-0)
modules/lua/docs/README (+12/-0)
modules/lua/docs/basic-configuration.txt (+141/-0)
modules/lua/docs/building-from-subversion.txt (+72/-0)
modules/lua/docs/running-developer-tests.txt (+16/-0)
modules/lua/docs/writing-handlers.txt (+49/-0)
modules/lua/lua_apr.c (+104/-0)
modules/lua/lua_apr.h (+36/-0)
modules/lua/lua_config.c (+277/-0)
modules/lua/lua_config.h (+31/-0)
modules/lua/lua_dbd.c (+843/-0)
modules/lua/lua_dbd.h (+66/-0)
modules/lua/lua_passwd.c (+178/-0)
modules/lua/lua_passwd.h (+90/-0)
modules/lua/lua_request.c (+3024/-0)
modules/lua/lua_request.h (+58/-0)
modules/lua/lua_vmprep.c (+551/-0)
modules/lua/lua_vmprep.h (+147/-0)
modules/lua/mod_lua.c (+2174/-0)
modules/lua/mod_lua.dep (+418/-0)
modules/lua/mod_lua.dsp (+163/-0)
modules/lua/mod_lua.h (+177/-0)
modules/lua/mod_lua.mak (+407/-0)
modules/lua/test/helpers.lua (+36/-0)
modules/lua/test/htdocs/config_tests.lua (+37/-0)
modules/lua/test/htdocs/filters.lua (+7/-0)
modules/lua/test/htdocs/find_me.txt (+1/-0)
modules/lua/test/htdocs/headers.lua (+6/-0)
modules/lua/test/htdocs/hooks.lua (+29/-0)
modules/lua/test/htdocs/other.lua (+21/-0)
modules/lua/test/htdocs/simple.lua (+4/-0)
modules/lua/test/htdocs/test.lua (+129/-0)
modules/lua/test/lib/kangaroo.lua (+19/-0)
modules/lua/test/moonunit.lua (+52/-0)
modules/lua/test/test.lua (+126/-0)
modules/lua/test/test_httpd.conf (+31/-0)
modules/mappers/.indent.pro (+54/-0)
modules/mappers/Makefile.in (+3/-0)
modules/mappers/NWGNUactions (+248/-0)
modules/mappers/NWGNUimagemap (+249/-0)
modules/mappers/NWGNUmakefile (+250/-0)
modules/mappers/NWGNUrewrite (+250/-0)
modules/mappers/NWGNUspeling (+248/-0)
modules/mappers/NWGNUuserdir (+249/-0)
modules/mappers/NWGNUvhost (+249/-0)
modules/mappers/config9.m4 (+19/-0)
modules/mappers/mod_actions.c (+230/-0)
modules/mappers/mod_actions.dep (+58/-0)
modules/mappers/mod_actions.dsp (+111/-0)
modules/mappers/mod_actions.exp (+1/-0)
modules/mappers/mod_actions.mak (+353/-0)
modules/mappers/mod_alias.c (+726/-0)
modules/mappers/mod_alias.dep (+51/-0)
modules/mappers/mod_alias.dsp (+111/-0)
modules/mappers/mod_alias.exp (+1/-0)
modules/mappers/mod_alias.mak (+353/-0)
modules/mappers/mod_dir.c (+417/-0)
modules/mappers/mod_dir.dep (+60/-0)
modules/mappers/mod_dir.dsp (+111/-0)
modules/mappers/mod_dir.exp (+1/-0)
modules/mappers/mod_dir.mak (+353/-0)
modules/mappers/mod_imagemap.c (+897/-0)
modules/mappers/mod_imagemap.dep (+60/-0)
modules/mappers/mod_imagemap.dsp (+111/-0)
modules/mappers/mod_imagemap.exp (+1/-0)
modules/mappers/mod_imagemap.mak (+353/-0)
modules/mappers/mod_negotiation.c (+3228/-0)
modules/mappers/mod_negotiation.dep (+58/-0)
modules/mappers/mod_negotiation.dsp (+111/-0)
modules/mappers/mod_negotiation.exp (+1/-0)
modules/mappers/mod_negotiation.mak (+353/-0)
modules/mappers/mod_rewrite.c (+5328/-0)
modules/mappers/mod_rewrite.dep (+65/-0)
modules/mappers/mod_rewrite.dsp (+111/-0)
modules/mappers/mod_rewrite.exp (+1/-0)
modules/mappers/mod_rewrite.h (+42/-0)
modules/mappers/mod_rewrite.mak (+353/-0)
modules/mappers/mod_speling.c (+533/-0)
modules/mappers/mod_speling.dep (+51/-0)
modules/mappers/mod_speling.dsp (+111/-0)
modules/mappers/mod_speling.exp (+1/-0)
modules/mappers/mod_speling.mak (+353/-0)
modules/mappers/mod_userdir.c (+390/-0)
modules/mappers/mod_userdir.dep (+46/-0)
modules/mappers/mod_userdir.dsp (+111/-0)
modules/mappers/mod_userdir.exp (+1/-0)
modules/mappers/mod_userdir.mak (+353/-0)
modules/mappers/mod_vhost_alias.c (+457/-0)
modules/mappers/mod_vhost_alias.dep (+50/-0)
modules/mappers/mod_vhost_alias.dsp (+111/-0)
modules/mappers/mod_vhost_alias.exp (+1/-0)
modules/mappers/mod_vhost_alias.mak (+353/-0)
modules/md/Makefile.in (+20/-0)
modules/md/config2.m4 (+297/-0)
modules/md/md.h (+290/-0)
modules/md/md_acme.c (+529/-0)
modules/md/md_acme.h (+267/-0)
modules/md/md_acme_acct.c (+670/-0)
modules/md/md_acme_acct.h (+49/-0)
modules/md/md_acme_authz.c (+723/-0)
modules/md/md_acme_authz.h (+104/-0)
modules/md/md_acme_drive.c (+1021/-0)
modules/md/md_core.c (+428/-0)
modules/md/md_crypt.c (+1315/-0)
modules/md/md_crypt.h (+135/-0)
modules/md/md_curl.c (+307/-0)
modules/md/md_curl.h (+24/-0)
modules/md/md_http.c (+245/-0)
modules/md/md_http.h (+102/-0)
modules/md/md_json.c (+1034/-0)
modules/md/md_json.h (+122/-0)
modules/md/md_jws.c (+106/-0)
modules/md/md_jws.h (+30/-0)
modules/md/md_log.c (+78/-0)
modules/md/md_log.h (+56/-0)
modules/md/md_reg.c (+996/-0)
modules/md/md_reg.h (+177/-0)
modules/md/md_store.c (+319/-0)
modules/md/md_store.h (+157/-0)
modules/md/md_store_fs.c (+883/-0)
modules/md/md_store_fs.h (+65/-0)
modules/md/md_util.c (+1254/-0)
modules/md/md_util.h (+148/-0)
modules/md/md_version.h (+42/-0)
modules/md/mod_md.c (+1442/-0)
modules/md/mod_md.dep (+5/-0)
modules/md/mod_md.dsp (+180/-0)
modules/md/mod_md.h (+50/-0)
modules/md/mod_md.mak (+520/-0)
modules/md/mod_md_config.c (+950/-0)
modules/md/mod_md_config.h (+102/-0)
modules/md/mod_md_os.c (+89/-0)
modules/md/mod_md_os.h (+37/-0)
modules/md/mod_md_private.h (+24/-0)
modules/metadata/.indent.pro (+54/-0)
modules/metadata/Makefile.in (+3/-0)
modules/metadata/NWGNUcernmeta (+248/-0)
modules/metadata/NWGNUexpires (+248/-0)
modules/metadata/NWGNUheaders (+249/-0)
modules/metadata/NWGNUmakefile (+254/-0)
modules/metadata/NWGNUmimemagi (+248/-0)
modules/metadata/NWGNUmodident (+248/-0)
modules/metadata/NWGNUmodversion (+248/-0)
modules/metadata/NWGNUremoteip (+248/-0)
modules/metadata/NWGNUuniqueid (+257/-0)
modules/metadata/NWGNUusertrk (+248/-0)
modules/metadata/config.m4 (+24/-0)
modules/metadata/mod_cern_meta.c (+371/-0)
modules/metadata/mod_cern_meta.dep (+55/-0)
modules/metadata/mod_cern_meta.dsp (+111/-0)
modules/metadata/mod_cern_meta.exp (+1/-0)
modules/metadata/mod_cern_meta.mak (+353/-0)
modules/metadata/mod_env.c (+190/-0)
modules/metadata/mod_env.dep (+47/-0)
modules/metadata/mod_env.dsp (+111/-0)
modules/metadata/mod_env.exp (+1/-0)
modules/metadata/mod_env.mak (+353/-0)
modules/metadata/mod_expires.c (+571/-0)
modules/metadata/mod_expires.dep (+54/-0)
modules/metadata/mod_expires.dsp (+111/-0)
modules/metadata/mod_expires.exp (+1/-0)
modules/metadata/mod_expires.mak (+353/-0)
modules/metadata/mod_headers.c (+1020/-0)
modules/metadata/mod_headers.dep (+57/-0)
modules/metadata/mod_headers.dsp (+111/-0)
modules/metadata/mod_headers.exp (+1/-0)
modules/metadata/mod_headers.mak (+353/-0)
modules/metadata/mod_ident.c (+344/-0)
modules/metadata/mod_ident.dep (+52/-0)
modules/metadata/mod_ident.dsp (+111/-0)
modules/metadata/mod_ident.exp (+1/-0)
modules/metadata/mod_ident.mak (+353/-0)
modules/metadata/mod_mime_magic.c (+2471/-0)
modules/metadata/mod_mime_magic.dep (+58/-0)
modules/metadata/mod_mime_magic.dsp (+111/-0)
modules/metadata/mod_mime_magic.exp (+1/-0)
modules/metadata/mod_mime_magic.mak (+353/-0)
modules/metadata/mod_remoteip.c (+1218/-0)
modules/metadata/mod_remoteip.dep (+53/-0)
modules/metadata/mod_remoteip.dsp (+111/-0)
modules/metadata/mod_remoteip.mak (+353/-0)
modules/metadata/mod_setenvif.c (+648/-0)
modules/metadata/mod_setenvif.dep (+56/-0)
modules/metadata/mod_setenvif.dsp (+111/-0)
modules/metadata/mod_setenvif.exp (+1/-0)
modules/metadata/mod_setenvif.mak (+353/-0)
modules/metadata/mod_unique_id.c (+316/-0)
modules/metadata/mod_unique_id.dep (+50/-0)
modules/metadata/mod_unique_id.dsp (+111/-0)
modules/metadata/mod_unique_id.exp (+1/-0)
modules/metadata/mod_unique_id.mak (+353/-0)
modules/metadata/mod_usertrack.c (+459/-0)
modules/metadata/mod_usertrack.dep (+51/-0)
modules/metadata/mod_usertrack.dsp (+111/-0)
modules/metadata/mod_usertrack.exp (+1/-0)
modules/metadata/mod_usertrack.mak (+353/-0)
modules/metadata/mod_version.c (+313/-0)
modules/metadata/mod_version.dep (+45/-0)
modules/metadata/mod_version.dsp (+111/-0)
modules/metadata/mod_version.exp (+1/-0)
modules/metadata/mod_version.mak (+353/-0)
modules/proxy/.indent.pro (+58/-0)
modules/proxy/CHANGES (+223/-0)
modules/proxy/Makefile.in (+4/-0)
modules/proxy/NWGNUmakefile (+259/-0)
modules/proxy/NWGNUproxy (+337/-0)
modules/proxy/NWGNUproxyajp (+264/-0)
modules/proxy/NWGNUproxybalancer (+260/-0)
modules/proxy/NWGNUproxycon (+251/-0)
modules/proxy/NWGNUproxyexpress (+256/-0)
modules/proxy/NWGNUproxyfcgi (+261/-0)
modules/proxy/NWGNUproxyftp (+260/-0)
modules/proxy/NWGNUproxyhcheck (+254/-0)
modules/proxy/NWGNUproxyhtp (+260/-0)
modules/proxy/NWGNUproxylbm_busy (+250/-0)
modules/proxy/NWGNUproxylbm_hb (+251/-0)
modules/proxy/NWGNUproxylbm_req (+251/-0)
modules/proxy/NWGNUproxylbm_traf (+251/-0)
modules/proxy/NWGNUproxyscgi (+260/-0)
modules/proxy/NWGNUproxywstunnel (+250/-0)
modules/proxy/ajp.h (+520/-0)
modules/proxy/ajp_header.c (+885/-0)
modules/proxy/ajp_header.h (+195/-0)
modules/proxy/ajp_link.c (+115/-0)
modules/proxy/ajp_msg.c (+641/-0)
modules/proxy/ajp_utils.c (+137/-0)
modules/proxy/balancers/Makefile.in (+3/-0)
modules/proxy/balancers/config2.m4 (+8/-0)
modules/proxy/balancers/mod_lbmethod_bybusyness.c (+161/-0)
modules/proxy/balancers/mod_lbmethod_bybusyness.dep (+76/-0)
modules/proxy/balancers/mod_lbmethod_bybusyness.dsp (+123/-0)
modules/proxy/balancers/mod_lbmethod_bybusyness.mak (+408/-0)
modules/proxy/balancers/mod_lbmethod_byrequests.c (+201/-0)
modules/proxy/balancers/mod_lbmethod_byrequests.dep (+76/-0)
modules/proxy/balancers/mod_lbmethod_byrequests.dsp (+123/-0)
modules/proxy/balancers/mod_lbmethod_byrequests.mak (+408/-0)
modules/proxy/balancers/mod_lbmethod_bytraffic.c (+170/-0)
modules/proxy/balancers/mod_lbmethod_bytraffic.dep (+76/-0)
modules/proxy/balancers/mod_lbmethod_bytraffic.dsp (+123/-0)
modules/proxy/balancers/mod_lbmethod_bytraffic.mak (+408/-0)
modules/proxy/balancers/mod_lbmethod_heartbeat.c (+467/-0)
modules/proxy/balancers/mod_lbmethod_heartbeat.dep (+77/-0)
modules/proxy/balancers/mod_lbmethod_heartbeat.dsp (+123/-0)
modules/proxy/balancers/mod_lbmethod_heartbeat.mak (+408/-0)
modules/proxy/config.m4 (+79/-0)
modules/proxy/libproxy.exp (+1/-0)
modules/proxy/mod_proxy.c (+3080/-0)
modules/proxy/mod_proxy.dep (+153/-0)
modules/proxy/mod_proxy.dsp (+127/-0)
modules/proxy/mod_proxy.h (+1246/-0)
modules/proxy/mod_proxy.mak (+361/-0)
modules/proxy/mod_proxy_ajp.c (+829/-0)
modules/proxy/mod_proxy_ajp.dep (+356/-0)
modules/proxy/mod_proxy_ajp.dsp (+151/-0)
modules/proxy/mod_proxy_ajp.mak (+416/-0)
modules/proxy/mod_proxy_balancer.c (+1936/-0)
modules/proxy/mod_proxy_balancer.dep (+76/-0)
modules/proxy/mod_proxy_balancer.dsp (+123/-0)
modules/proxy/mod_proxy_balancer.mak (+380/-0)
modules/proxy/mod_proxy_connect.c (+486/-0)
modules/proxy/mod_proxy_connect.dep (+73/-0)
modules/proxy/mod_proxy_connect.dsp (+123/-0)
modules/proxy/mod_proxy_connect.mak (+380/-0)
modules/proxy/mod_proxy_express.c (+221/-0)
modules/proxy/mod_proxy_express.dep (+74/-0)
modules/proxy/mod_proxy_express.dsp (+123/-0)
modules/proxy/mod_proxy_express.mak (+380/-0)
modules/proxy/mod_proxy_fcgi.c (+1200/-0)
modules/proxy/mod_proxy_fcgi.dep (+75/-0)
modules/proxy/mod_proxy_fcgi.dsp (+123/-0)
modules/proxy/mod_proxy_fcgi.mak (+380/-0)
modules/proxy/mod_proxy_fdpass.c (+241/-0)
modules/proxy/mod_proxy_fdpass.h (+41/-0)
modules/proxy/mod_proxy_ftp.c (+2125/-0)
modules/proxy/mod_proxy_ftp.dep (+74/-0)
modules/proxy/mod_proxy_ftp.dsp (+123/-0)
modules/proxy/mod_proxy_ftp.mak (+380/-0)
modules/proxy/mod_proxy_hcheck.c (+1225/-0)
modules/proxy/mod_proxy_hcheck.dep (+5/-0)
modules/proxy/mod_proxy_hcheck.dsp (+123/-0)
modules/proxy/mod_proxy_hcheck.mak (+380/-0)
modules/proxy/mod_proxy_http.c (+2043/-0)
modules/proxy/mod_proxy_http.dep (+73/-0)
modules/proxy/mod_proxy_http.dsp (+123/-0)
modules/proxy/mod_proxy_http.mak (+380/-0)
modules/proxy/mod_proxy_scgi.c (+674/-0)
modules/proxy/mod_proxy_scgi.dep (+75/-0)
modules/proxy/mod_proxy_scgi.dsp (+123/-0)
modules/proxy/mod_proxy_scgi.mak (+380/-0)
modules/proxy/mod_proxy_uwsgi.c (+551/-0)
modules/proxy/mod_proxy_uwsgi.dep (+75/-0)
modules/proxy/mod_proxy_uwsgi.dsp (+123/-0)
modules/proxy/mod_proxy_uwsgi.mak (+380/-0)
modules/proxy/mod_proxy_wstunnel.c (+391/-0)
modules/proxy/mod_proxy_wstunnel.dep (+73/-0)
modules/proxy/mod_proxy_wstunnel.dsp (+123/-0)
modules/proxy/mod_proxy_wstunnel.mak (+380/-0)
modules/proxy/proxy_util.c (+3889/-0)
modules/proxy/proxy_util.h (+45/-0)
modules/proxy/scgi.h (+36/-0)
modules/session/Makefile.in (+4/-0)
modules/session/NWGNUmakefile (+257/-0)
modules/session/NWGNUsession (+254/-0)
modules/session/NWGNUsession_cookie (+253/-0)
modules/session/NWGNUsession_crypto (+255/-0)
modules/session/NWGNUsession_dbd (+253/-0)
modules/session/config.m4 (+68/-0)
modules/session/mod_session.c (+671/-0)
modules/session/mod_session.dep (+56/-0)
modules/session/mod_session.dsp (+115/-0)
modules/session/mod_session.h (+186/-0)
modules/session/mod_session.mak (+353/-0)
modules/session/mod_session_cookie.c (+284/-0)
modules/session/mod_session_cookie.dep (+49/-0)
modules/session/mod_session_cookie.dsp (+111/-0)
modules/session/mod_session_cookie.mak (+381/-0)
modules/session/mod_session_crypto.c (+805/-0)
modules/session/mod_session_crypto.dep (+57/-0)
modules/session/mod_session_crypto.dsp (+111/-0)
modules/session/mod_session_crypto.mak (+381/-0)
modules/session/mod_session_dbd.c (+640/-0)
modules/session/mod_session_dbd.dep (+60/-0)
modules/session/mod_session_dbd.dsp (+111/-0)
modules/session/mod_session_dbd.mak (+409/-0)
modules/slotmem/Makefile.in (+3/-0)
modules/slotmem/NWGNUmakefile (+246/-0)
modules/slotmem/NWGNUslotmem_plain (+250/-0)
modules/slotmem/NWGNUslotmem_shm (+250/-0)
modules/slotmem/config.m4 (+10/-0)
modules/slotmem/mod_slotmem_plain.c (+343/-0)
modules/slotmem/mod_slotmem_plain.dep (+51/-0)
modules/slotmem/mod_slotmem_plain.dsp (+111/-0)
modules/slotmem/mod_slotmem_plain.mak (+353/-0)
modules/slotmem/mod_slotmem_shm.c (+880/-0)
modules/slotmem/mod_slotmem_shm.dep (+57/-0)
modules/slotmem/mod_slotmem_shm.dsp (+111/-0)
modules/slotmem/mod_slotmem_shm.mak (+353/-0)
modules/ssl/Makefile.in (+20/-0)
modules/ssl/NWGNUmakefile (+327/-0)
modules/ssl/README (+106/-0)
modules/ssl/README.dsov.fig (+346/-0)
modules/ssl/README.dsov.ps (+1138/-0)
modules/ssl/config.m4 (+57/-0)
modules/ssl/mod_ssl.c (+760/-0)
modules/ssl/mod_ssl.dep (+1086/-0)
modules/ssl/mod_ssl.dsp (+195/-0)
modules/ssl/mod_ssl.h (+91/-0)
modules/ssl/mod_ssl.mak (+500/-0)
modules/ssl/mod_ssl_openssl.h (+73/-0)
modules/ssl/ssl_engine_config.c (+2067/-0)
modules/ssl/ssl_engine_init.c (+2147/-0)
modules/ssl/ssl_engine_io.c (+2217/-0)
modules/ssl/ssl_engine_kernel.c (+2499/-0)
modules/ssl/ssl_engine_log.c (+238/-0)
modules/ssl/ssl_engine_mutex.c (+111/-0)
modules/ssl/ssl_engine_ocsp.c (+304/-0)
modules/ssl/ssl_engine_pphrase.c (+621/-0)
modules/ssl/ssl_engine_rand.c (+177/-0)
modules/ssl/ssl_engine_vars.c (+1252/-0)
modules/ssl/ssl_private.h (+1083/-0)
modules/ssl/ssl_scache.c (+239/-0)
modules/ssl/ssl_util.c (+471/-0)
modules/ssl/ssl_util_ocsp.c (+419/-0)
modules/ssl/ssl_util_ssl.c (+538/-0)
modules/ssl/ssl_util_ssl.h (+80/-0)
modules/ssl/ssl_util_stapling.c (+873/-0)
modules/test/.indent.pro (+54/-0)
modules/test/Makefile.in (+3/-0)
modules/test/NWGNUmakefile (+257/-0)
modules/test/NWGNUoptfnexport (+256/-0)
modules/test/NWGNUoptfnimport (+256/-0)
modules/test/NWGNUopthookexport (+256/-0)
modules/test/NWGNUopthookimport (+256/-0)
modules/test/README (+1/-0)
modules/test/config.m4 (+13/-0)
modules/test/mod_dialup.c (+306/-0)
modules/test/mod_optional_fn_export.c (+48/-0)
modules/test/mod_optional_fn_export.h (+19/-0)
modules/test/mod_optional_fn_import.c (+55/-0)
modules/test/mod_optional_hook_export.c (+44/-0)
modules/test/mod_optional_hook_export.h (+24/-0)
modules/test/mod_optional_hook_import.c (+45/-0)
os/.indent.pro (+54/-0)
os/Makefile.in (+4/-0)
os/bs2000/ebcdic.c (+210/-0)
os/bs2000/ebcdic.h (+33/-0)
os/bs2000/os.c (+136/-0)
os/bs2000/os.h (+40/-0)
os/config.m4 (+26/-0)
os/netware/modules.c (+117/-0)
os/netware/netware_config_layout.h (+31/-0)
os/netware/os.h (+57/-0)
os/netware/pre_nw.h (+70/-0)
os/netware/util_nw.c (+112/-0)
os/os2/Makefile.in (+5/-0)
os/os2/config.m4 (+3/-0)
os/os2/core.mk (+7/-0)
os/os2/core_header.def (+19/-0)
os/os2/os.h (+40/-0)
os/os2/util_os2.c (+39/-0)
os/unix/Makefile.in (+5/-0)
os/unix/config.m4 (+7/-0)
os/unix/os.h (+52/-0)
os/unix/unixd.c (+714/-0)
os/unix/unixd.h (+142/-0)
os/win32/BaseAddr.ref (+134/-0)
os/win32/Makefile.in (+5/-0)
os/win32/ap_regkey.c (+642/-0)
os/win32/modules.c (+56/-0)
os/win32/os.h (+139/-0)
os/win32/util_win32.c (+148/-0)
os/win32/win32_config_layout.h (+31/-0)
server/.indent.pro (+54/-0)
server/Makefile.in (+105/-0)
server/NWGNUmakefile (+261/-0)
server/buildmark.c (+29/-0)
server/config.c (+2728/-0)
server/config.m4 (+19/-0)
server/connection.c (+228/-0)
server/core.c (+5459/-0)
server/core_filters.c (+889/-0)
server/eoc_bucket.c (+55/-0)
server/eor_bucket.c (+102/-0)
server/error_bucket.c (+77/-0)
server/gen_test_char.c (+173/-0)
server/gen_test_char.dep (+7/-0)
server/gen_test_char.dsp (+94/-0)
server/gen_test_char.mak (+234/-0)
server/listen.c (+938/-0)
server/log.c (+1956/-0)
server/main.c (+850/-0)
server/mpm/MPM.NAMING (+14/-0)
server/mpm/Makefile.in (+4/-0)
server/mpm/config.m4 (+128/-0)
server/mpm/config2.m4 (+89/-0)
server/mpm/event/Makefile.in (+1/-0)
server/mpm/event/config.m4 (+15/-0)
server/mpm/event/config3.m4 (+7/-0)
server/mpm/event/event.c (+3874/-0)
server/mpm/event/mpm_default.h (+56/-0)
server/mpm/mpmt_os2/Makefile.in (+1/-0)
server/mpm/mpmt_os2/config.m4 (+10/-0)
server/mpm/mpmt_os2/config5.m4 (+3/-0)
server/mpm/mpmt_os2/mpm_default.h (+57/-0)
server/mpm/mpmt_os2/mpmt_os2.c (+614/-0)
server/mpm/mpmt_os2/mpmt_os2_child.c (+488/-0)
server/mpm/netware/mpm_default.h (+78/-0)
server/mpm/netware/mpm_netware.c (+1363/-0)
server/mpm/prefork/Makefile.in (+1/-0)
server/mpm/prefork/config.m4 (+7/-0)
server/mpm/prefork/config3.m4 (+1/-0)
server/mpm/prefork/mpm_default.h (+51/-0)
server/mpm/prefork/prefork.c (+1513/-0)
server/mpm/winnt/Makefile.in (+1/-0)
server/mpm/winnt/child.c (+1266/-0)
server/mpm/winnt/config.m4 (+10/-0)
server/mpm/winnt/config3.m4 (+2/-0)
server/mpm/winnt/mpm_default.h (+60/-0)
server/mpm/winnt/mpm_winnt.c (+1785/-0)
server/mpm/winnt/mpm_winnt.h (+96/-0)
server/mpm/winnt/nt_eventlog.c (+171/-0)
server/mpm/winnt/service.c (+1241/-0)
server/mpm/worker/Makefile.in (+2/-0)
server/mpm/worker/config.m4 (+11/-0)
server/mpm/worker/config3.m4 (+5/-0)
server/mpm/worker/mpm_default.h (+55/-0)
server/mpm/worker/worker.c (+2378/-0)
server/mpm_common.c (+571/-0)
server/mpm_fdqueue.c (+530/-0)
server/mpm_fdqueue.h (+110/-0)
server/mpm_unix.c (+1107/-0)
server/protocol.c (+2399/-0)
server/provider.c (+197/-0)
server/request.c (+2511/-0)
server/scoreboard.c (+672/-0)
server/util.c (+3309/-0)
server/util_cfgtree.c (+46/-0)
server/util_charset.c (+28/-0)
server/util_cookies.c (+290/-0)
server/util_debug.c (+236/-0)
server/util_ebcdic.c (+117/-0)
server/util_expr_eval.c (+1822/-0)
server/util_expr_parse.c (+2130/-0)
server/util_expr_parse.h (+104/-0)
server/util_expr_parse.y (+217/-0)
server/util_expr_private.h (+141/-0)
server/util_expr_scan.c (+2669/-0)
server/util_expr_scan.l (+400/-0)
server/util_fcgi.c (+290/-0)
server/util_filter.c (+732/-0)
server/util_md5.c (+166/-0)
server/util_mutex.c (+561/-0)
server/util_pcre.c (+343/-0)
server/util_regex.c (+210/-0)
server/util_script.c (+900/-0)
server/util_time.c (+306/-0)
server/util_xml.c (+140/-0)
server/vhost.c (+1267/-0)
srclib/Makefile.in (+5/-0)
support/.indent.pro (+54/-0)
support/Makefile.in (+89/-0)
support/NWGNUab (+330/-0)
support/NWGNUhtcacheclean (+253/-0)
support/NWGNUhtdbm (+252/-0)
support/NWGNUhtdigest (+251/-0)
support/NWGNUhtpasswd (+252/-0)
support/NWGNUhttxt2dbm (+251/-0)
support/NWGNUlogres (+258/-0)
support/NWGNUmakefile (+51/-0)
support/NWGNUrotlogs (+250/-0)
support/README (+65/-0)
support/SHA1/README.sha1 (+34/-0)
support/SHA1/convert-sha1.pl (+36/-0)
support/SHA1/htpasswd-sha1.pl (+22/-0)
support/SHA1/ldif-sha1.example (+19/-0)
support/ab.c (+2623/-0)
support/ab.dep (+37/-0)
support/ab.dsp (+106/-0)
support/ab.mak (+317/-0)
support/abs.dep (+37/-0)
support/abs.dsp (+144/-0)
support/abs.mak (+374/-0)
support/apachectl.in (+106/-0)
support/apxs.in (+791/-0)
support/check_forensic (+51/-0)
support/checkgid.c (+110/-0)
support/config.m4 (+151/-0)
support/dbmmanage.in (+312/-0)
support/envvars-std.in (+28/-0)
support/fcgistarter.c (+220/-0)
support/fcgistarter.dep (+29/-0)
support/fcgistarter.dsp (+106/-0)
support/fcgistarter.mak (+317/-0)
support/htcacheclean.c (+1829/-0)
support/htcacheclean.dep (+37/-0)
support/htcacheclean.dsp (+106/-0)
support/htcacheclean.mak (+317/-0)
support/htdbm.c (+472/-0)
support/htdbm.dep (+58/-0)
support/htdbm.dsp (+110/-0)
support/htdbm.mak (+326/-0)
support/htdigest.c (+303/-0)
support/htdigest.dep (+27/-0)
support/htdigest.dsp (+106/-0)
support/htdigest.mak (+317/-0)
support/htpasswd.c (+524/-0)
support/htpasswd.dep (+57/-0)
support/htpasswd.dsp (+110/-0)
support/htpasswd.mak (+326/-0)
support/httxt2dbm.c (+335/-0)
support/httxt2dbm.dep (+26/-0)
support/httxt2dbm.dsp (+106/-0)
support/httxt2dbm.mak (+317/-0)
support/list_hooks.pl (+101/-0)
support/log_server_status.in (+76/-0)
support/logresolve.c (+329/-0)
support/logresolve.dep (+26/-0)
support/logresolve.dsp (+106/-0)
support/logresolve.mak (+317/-0)
support/logresolve.pl.in (+225/-0)
support/passwd_common.c (+344/-0)
support/passwd_common.h (+128/-0)
support/phf_abuse_log.cgi.in (+38/-0)
support/rotatelogs.c (+753/-0)
support/rotatelogs.dep (+28/-0)
support/rotatelogs.dsp (+106/-0)
support/rotatelogs.mak (+317/-0)
support/split-logfile.in (+69/-0)
support/suexec.c (+652/-0)
support/suexec.h (+109/-0)
support/win32/ApacheMonitor.c (+1671/-0)
support/win32/ApacheMonitor.dep (+18/-0)
support/win32/ApacheMonitor.dsp (+143/-0)
support/win32/ApacheMonitor.h (+78/-0)
support/win32/ApacheMonitor.mak (+309/-0)
support/win32/ApacheMonitor.manifest (+10/-0)
support/win32/ApacheMonitor.rc (+103/-0)
support/win32/wintty.c (+374/-0)
support/win32/wintty.dep (+5/-0)
support/win32/wintty.dsp (+106/-0)
support/win32/wintty.mak (+317/-0)
test/.indent.pro (+54/-0)
test/Makefile.in (+20/-0)
test/README (+3/-0)
test/check_chunked (+58/-0)
test/cls.c (+182/-0)
test/make_sni.sh (+396/-0)
test/tcpdumpscii.txt (+50/-0)
test/test-writev.c (+101/-0)
test/test_find.c (+78/-0)
test/test_limits.c (+200/-0)
test/test_parser.c (+75/-0)
test/test_select.c (+46/-0)
test/time-sem.c (+591/-0)
Reviewer Review Type Date Requested Status
 Christian Ehrhardt  2018-05-09 Approve on 2018-05-15
Canonical Server Team 2018-05-09 Pending
Review via email: mp+345312@code.launchpad.net

Description of the change

NOTE: please ignore the diff produced by LP and instead use git locally, there is something wrong with its generation.

Standard merge from debian. Dropped some delta that was already applied upstream, but had to add a new delta because of a universe dependency that debian added (brotli).

I took a quick look at debian/patches/086_svn_cross_compiles, which we have been carrying for years. It is committed to apache trunk, but for some reason not yet in the release branches.

DEP8 tests pass.

Did a fresh install of the cosmic package, then php, setup an index.php that calls phpinfo(), then upgraded to this package and reloaded page, still worked.

There was some back and forth with enabling/disabling http2 and openssl 1.0/1.1, but it's finally enabled and I dropped the disable/enable sequence from the logical delta. End result is we still have http2 and openssl 1.1

PPA with test packages: ppa:ahasenack/apache-merge-2.4.33-3

To post a comment you must log in.

Breakdown of old Delta - ok
Mentioning of dropped changes - ok
On the remaining delta mostly ack, I wonder as well about the cross-compile changes but keeping for now should be ok.

One thing that made me wonder is the systemd diff for #1488962 still carried.
First of all we should try to still carry the LP reference just without the # to not trigger bug updates. This is not too important as "way down in the CL" I could find it.
But we have a native systemd service for a while now, so this is not more needed.
I dropped the file and systemctl daemon-reload
Then I find the conf no more relevant as expected, still everything reported in the old bug is working just fine.
In particular the native service is type=forking and RemainAfterExit defaults to no
That said, please drop that part of the Delta

One more thing - Is the feature that brotli would provide great enough to let us want to open a MIR for it to one day follow Debian on it?

I did my own build and tests and all seemed good to me.
Once you have adapted the Delta I'd ask you to check if test-apache2.py of [1] still works fine.
If that is good as well, then we can go on with the merge.

[1]: git+ssh://git.launchpad.net/qa-regression-testing
Other than these I'm happy with it, so it should be good after cleaning up the above.

Forgot status update - needs fixing for now

review: Needs Fixing
afba5f5... by Andreas Hasenack on 2018-05-11

    - Correct systemd-sysv-generator behavior by customizing some
      parameters:
      + d/apache2-systemd.conf: add a drop-in file to specify some
        parameters for the systemd unit (type=Forking and
        RemainsAfterExit=no), this allow a correct state synchronisation
        between systemctl status and actual state of apache2 daemon.
      + d/apache2.install: place the apache2-systemd.conf file in the
        correct location.
      [type=Forking already in the base systemd service file, and
       RemainsAfterExit=no is the default value, so no need to
       customize these anymore.]

Andreas Hasenack (ahasenack) wrote :

Thanks for catching the systemd delta, definitely a drop.

Regarding brotli, I had never heard of it before now. Upstream seems active, and it's a google project: https://github.com/google/brotli/releases. I really can't say anything else about it.

Going to check test-apache2.py now.

Andreas Hasenack (ahasenack) wrote :

Good call on the secteam's qa regression suite. It caught an error, for which I made an MP: https://code.launchpad.net/~ahasenack/qa-regression-testing/+git/qa-regression-testing/+merge/345557

Running the full suite now (it does take a while). Will post back the results.

Andreas Hasenack (ahasenack) wrote :

Ok, tests pass now: https://pastebin.ubuntu.com/p/pxsmyYyKpp/

(apache-2.4.33-wont-start-ssl-compression)ubuntu@cosmic-apache2-merge:~/git/qa-regression-testing/scripts$ time sudo ./test-apache2.py 2>&1 | tee ~/new-test-run
test_basic_rewrite (__main__.BasicTest)
Test basic rewrite functionality ... ok
test_cve_2007_6203 (__main__.BasicTest)
Test CVE-2007-6203 ... ok
test_cve_2007_6420 (__main__.BasicTest)
Test CVE-2007-6420 ... ok
test_cve_2008_2168 (__main__.BasicTest)
(...)
test_htpasswd_sha (__main__.HTPasswdTest)
Test htpasswd to ensure crypt returns sane sha results ... ok

----------------------------------------------------------------------
Ran 37 tests in 432.842s

OK

  GET (no credentials)

real 7m12.959s

Please re-review, thanks

For Brotli I found that it is a new compression algorithm better than gzip.
It is not needed right now, but usually google funded internet standards often become "required" over time to stay current. So while I ack to disabling it right now I'd ask you to file a MIR for it to be able to enable it at some point unless the security review unveils massive issues with it.

Thanks for the tests, it didn't find an issue with your merge but with the tests - never the less that is good later on when maintaining this.

The merge is good now asid one nit pick - IMHO it misses one space in the changelog.
This is no deal breaker, so I'll leave it up to you if you want to fix it or not (see inline comment below).
Everything else is good now, so +1

review: Approve
Andreas Hasenack (ahasenack) wrote :

Christian found an old MIR bug for brotli that was already completed, but the package was never moved to main. I'll drop the dependency removal and if all tests continue to pass, upload with that, so an AA can promote brotli to main.

This is the MIR: https://bugs.launchpad.net/ubuntu/+source/brotli/+bug/1737053

There is a package in cosmic-proposed that has failed an armhf build, and the bug above hints that there is a fix for it. I might get do that as well if needed.

As discussed on IRC pushed the tag on a5941629 so you can upload later.
If murphy hits and you have to change we can force the tag to a new one.
Hope this unblocks you for today.

Andreas Hasenack (ahasenack) wrote :

Tests were good, so I uploaded.

466ac4c... by Andreas Hasenack on 2018-05-17

  * Added changes:
    - d/control, d/rules: Don't build libapache2-mod-proxy-uwsgi and
      libapache2-mod-md until we figure out their transitions.
      libapache2-mod-md in particular is problematic because that makes
      apache2-bin pull in libcurl4 which cannot be coinstalled with libcurl3.
      That situation breaks the installation of libapache2-mod-shib2. See
      https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1770242/comments/1
      for details.

17d0c34... by Andreas Hasenack on 2018-05-17

merge-changelogs

0b664b4... by Andreas Hasenack on 2018-05-17

reconstruct-changelog

f56d4ee... by Andreas Hasenack on 2018-05-17

update-maintainer

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/debian/apache2-bin.install b/debian/apache2-bin.install
index 63c573f..3d1bdf1 100644
--- a/debian/apache2-bin.install
+++ b/debian/apache2-bin.install
@@ -1,2 +1,3 @@
1/usr/lib/apache2/modules/1/usr/lib/apache2/modules/
2/usr/sbin/apache22/usr/sbin/apache2
3debian/apache2.py usr/share/apport/package-hooks
diff --git a/debian/apache2-utils.ufw.profile b/debian/apache2-utils.ufw.profile
3new file mode 1006444new file mode 100644
index 0000000..974a655
--- /dev/null
+++ b/debian/apache2-utils.ufw.profile
@@ -0,0 +1,14 @@
1[Apache]
2title=Web Server
3description=Apache v2 is the next generation of the omnipresent Apache web server.
4ports=80/tcp
5
6[Apache Secure]
7title=Web Server (HTTPS)
8description=Apache v2 is the next generation of the omnipresent Apache web server.
9ports=443/tcp
10
11[Apache Full]
12title=Web Server (HTTP,HTTPS)
13description=Apache v2 is the next generation of the omnipresent Apache web server.
14ports=80,443/tcp
diff --git a/debian/apache2.dirs b/debian/apache2.dirs
index 6089013..1aa6d3c 100644
--- a/debian/apache2.dirs
+++ b/debian/apache2.dirs
@@ -10,3 +10,4 @@ var/cache/apache2/mod_cache_disk
10var/lib/apache210var/lib/apache2
11var/log/apache211var/log/apache2
12var/www/html12var/www/html
13/etc/ufw/applications.d/apache2
diff --git a/debian/apache2.install b/debian/apache2.install
index b6ad789..92865fc 100644
--- a/debian/apache2.install
+++ b/debian/apache2.install
@@ -8,3 +8,4 @@ debian/config-dir/*.conf /etc/apache2
8debian/config-dir/envvars /etc/apache28debian/config-dir/envvars /etc/apache2
9debian/config-dir/magic /etc/apache29debian/config-dir/magic /etc/apache2
10debian/debhelper/apache2-maintscript-helper /usr/share/apache2/10debian/debhelper/apache2-maintscript-helper /usr/share/apache2/
11debian/apache2-utils.ufw.profile /etc/ufw/applications.d/
diff --git a/debian/apache2.postrm b/debian/apache2.postrm
index a68583c..b0e5d7b 100644
--- a/debian/apache2.postrm
+++ b/debian/apache2.postrm
@@ -33,6 +33,7 @@ is_default_index_html () {
33 776221a94e5a174dc2396c0f3f6b6a7433 776221a94e5a174dc2396c0f3f6b6a74
34 c481228d439cbb54bdcedbaec5bbb11a34 c481228d439cbb54bdcedbaec5bbb11a
35 e2620d4a5a0f8d80dd4b16de59af981f35 e2620d4a5a0f8d80dd4b16de59af981f
36 3526531ccd6c6a1d2340574a305a18f8
36 EOF37 EOF
37}38}
3839
diff --git a/debian/apache2.py b/debian/apache2.py
39new file mode 10064440new file mode 100644
index 0000000..a9fb9d8
--- /dev/null
+++ b/debian/apache2.py
@@ -0,0 +1,48 @@
1#!/usr/bin/python
2
3'''apport hook for apache2
4
5(c) 2010 Adam Sommer.
6Author: Adam Sommer <asommer@ubuntu.com>
7
8This program is free software; you can redistribute it and/or modify it
9under the terms of the GNU General Public License as published by the
10Free Software Foundation; either version 2 of the License, or (at your
11option) any later version. See http://www.gnu.org/copyleft/gpl.html for
12the full text of the license.
13'''
14
15from apport.hookutils import *
16import os
17
18SITES_ENABLED_DIR = '/etc/apache2/sites-enabled/'
19
20def add_info(report, ui):
21 if os.path.isdir(SITES_ENABLED_DIR):
22 response = ui.yesno("The contents of your " + SITES_ENABLED_DIR + " directory "
23 "may help developers diagnose your bug more "
24 "quickly. However, it may contain sensitive "
25 "information. Do you want to include it in your "
26 "bug report?")
27
28 if response == None: # user cancelled
29 raise StopIteration
30
31 elif response == True:
32 # Attache config files in /etc/apache2/sites-enabled and listing of files in /etc/apache2/conf.d
33 for conf_file in os.listdir(SITES_ENABLED_DIR):
34 attach_file_if_exists(report, SITES_ENABLED_DIR + conf_file, conf_file)
35
36 try:
37 report['Apache2ConfdDirListing'] = str(os.listdir('/etc/apache2/conf.d'))
38 except OSError:
39 report['Apache2ConfdDirListing'] = str(False)
40
41 # Attach default config files if changed.
42 attach_conffiles(report, 'apache2', conffiles=None)
43
44 # Attach the error.log file.
45 attach_file(report, '/var/log/apache2/error.log', key='error.log')
46
47 # Get loaded modules.
48 report['Apache2Modules'] = root_command_output(['/usr/sbin/apachectl', '-D DUMP_MODULES'])
diff --git a/debian/changelog b/debian/changelog
index b5be286..a4fabd9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,68 @@
1apache2 (2.4.33-3ubuntu1) cosmic; urgency=medium
2
3 * Merge with Debian unstable (LP: #1770242). Remaining changes:
4 - debian/{control, apache2.install, apache2-utils.ufw.profile,
5 apache2.dirs}: Add ufw profiles.
6 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
7 - debian/patches/086_svn_cross_compiles: Backport several cross
8 fixes from upstream
9 - d/index.html, d/icons/ubuntu-logo.png, d/apache2.postrm: replace
10 Debian with Ubuntu on default page.
11 + d/source/include-binaries: add Ubuntu icon file
12 - d/t/control, d/t/check-http2: add basic test for http2 support
13 * Drop:
14 - SECURITY UPDATE: DoS via missing header with AuthLDAPCharsetConfig
15 + debian/patches/CVE-2017-15710.patch: fix language long names
16 detection as short name in modules/aaa/mod_authnz_ldap.c.
17 + CVE-2017-15710
18 - SECURITY UPDATE: incorrect <FilesMatch> matching
19 + debian/patches/CVE-2017-15715.patch: allow to configure
20 global/default options for regexes, like caseless matching or
21 extended format in include/ap_regex.h, server/core.c,
22 server/util_pcre.c.
23 + CVE-2017-15715
24 - SECURITY UPDATE: mod_session header manipulation
25 + debian/patches/CVE-2018-1283.patch: strip Session header when
26 SessionEnv is on in modules/session/mod_session.c.
27 + CVE-2018-1283
28 - SECURITY UPDATE: DoS via specially-crafted request
29 + debian/patches/CVE-2018-1301.patch: ensure that read lines are NUL
30 terminated on any error, not only on buffer full in
31 server/protocol.c.
32 + CVE-2018-1301
33 - SECURITY UPDATE: mod_cache_socache DoS
34 + debian/patches/CVE-2018-1303.patch: fix caching of empty headers up
35 to carriage return in modules/cache/mod_cache_socache.c.
36 + CVE-2018-1303
37 - SECURITY UPDATE: insecure nonce generation
38 + debian/patches/CVE-2018-1312.patch: actually use the secret when
39 generating nonces in modules/aaa/mod_auth_digest.c.
40 + CVE-2018-1312
41 - Correct systemd-sysv-generator behavior by customizing some
42 parameters:
43 + d/apache2-systemd.conf: add a drop-in file to specify some
44 parameters for the systemd unit (type=Forking and
45 RemainsAfterExit=no), this allow a correct state synchronisation
46 between systemctl status and actual state of apache2 daemon.
47 + d/apache2.install: place the apache2-systemd.conf file in the
48 correct location.
49 [type=Forking already in the base systemd service file, and
50 RemainsAfterExit=no is the default value, so no need to
51 customize these anymore.]
52 - Avoid crashes, hangs and loops by fixing mod_ldap locking: (LP #1752683)
53 + added debian/patches/util_ldap_cache_lock_fix.patch
54 [Already applied upstream]
55 * Added changes:
56 - d/control, d/rules: Don't build libapache2-mod-proxy-uwsgi and
57 libapache2-mod-md until we figure out their transitions.
58 libapache2-mod-md in particular is problematic because that makes
59 apache2-bin pull in libcurl4 which cannot be coinstalled with libcurl3.
60 That situation breaks the installation of libapache2-mod-shib2. See
61 https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1770242/comments/1
62 for details.
63
64 -- Andreas Hasenack <andreas@canonical.com> Thu, 17 May 2018 11:12:08 -0300
65
1apache2 (2.4.33-3) unstable; urgency=medium66apache2 (2.4.33-3) unstable; urgency=medium
267
3 * Add Breaks for libapache2-mod-proxy-uwsgi and libapache2-mod-md, too.68 * Add Breaks for libapache2-mod-proxy-uwsgi and libapache2-mod-md, too.
@@ -70,6 +135,91 @@ apache2 (2.4.29-2) unstable; urgency=medium
70135
71 -- Ondřej Surý <ondrej@debian.org> Sun, 14 Jan 2018 11:01:58 +0000136 -- Ondřej Surý <ondrej@debian.org> Sun, 14 Jan 2018 11:01:58 +0000
72137
138apache2 (2.4.29-1ubuntu4.1) bionic-security; urgency=medium
139
140 * SECURITY UPDATE: DoS via missing header with AuthLDAPCharsetConfig
141 - debian/patches/CVE-2017-15710.patch: fix language long names
142 detection as short name in modules/aaa/mod_authnz_ldap.c.
143 - CVE-2017-15710
144 * SECURITY UPDATE: incorrect <FilesMatch> matching
145 - debian/patches/CVE-2017-15715.patch: allow to configure
146 global/default options for regexes, like caseless matching or
147 extended format in include/ap_regex.h, server/core.c,
148 server/util_pcre.c.
149 - CVE-2017-15715
150 * SECURITY UPDATE: mod_session header manipulation
151 - debian/patches/CVE-2018-1283.patch: strip Session header when
152 SessionEnv is on in modules/session/mod_session.c.
153 - CVE-2018-1283
154 * SECURITY UPDATE: DoS via specially-crafted request
155 - debian/patches/CVE-2018-1301.patch: ensure that read lines are NUL
156 terminated on any error, not only on buffer full in
157 server/protocol.c.
158 - CVE-2018-1301
159 * SECURITY UPDATE: mod_cache_socache DoS
160 - debian/patches/CVE-2018-1303.patch: fix caching of empty headers up
161 to carriage return in modules/cache/mod_cache_socache.c.
162 - CVE-2018-1303
163 * SECURITY UPDATE: insecure nonce generation
164 - debian/patches/CVE-2018-1312.patch: actually use the secret when
165 generating nonces in modules/aaa/mod_auth_digest.c.
166 - CVE-2018-1312
167
168 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 25 Apr 2018 07:38:24 -0400
169
170apache2 (2.4.29-1ubuntu4) bionic; urgency=medium
171
172 * Avoid crashes, hangs and loops by fixing mod_ldap locking: (LP: #1752683)
173 - added debian/patches/util_ldap_cache_lock_fix.patch
174
175 -- Rafael David Tinoco <rafael.tinoco@canonical.com> Fri, 02 Mar 2018 02:19:31 +0000
176
177apache2 (2.4.29-1ubuntu3) bionic; urgency=medium
178
179 * Switch back to OpenSSL 1.1.
180
181 -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 06 Feb 2018 11:57:20 +0000
182
183apache2 (2.4.29-1ubuntu2) bionic; urgency=medium
184
185 * enable http2 (LP: #1687454) by stopping to disable it
186 - debian/control: no more removed libnghttp2-dev Build-Depends (in universe).
187 - debian/config-dir/mods-available/http2.load: no more removed.
188 - debian/rules: no more removed proxy_http2 from configure.
189 * d/t/control, d/t/check-http2: add basic test for http2 support
190
191 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 05 Dec 2017 17:25:39 +0100
192
193apache2 (2.4.29-1ubuntu1) bionic; urgency=medium
194
195 * Merge with Debian unstable. Remaining changes:
196 - debian/{control, apache2.install, apache2-utils.ufw.profile,
197 apache2.dirs}: Add ufw profiles.
198 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
199 - debian/patches/086_svn_cross_compiles: Backport several cross
200 fixes from upstream
201 - d/index.html, d/icons/ubuntu-logo.png, d/apache2.postrm: replace
202 Debian with Ubuntu on default page.
203 + d/source/include-binaries: add Ubuntu icon file
204 - Correct systemd-sysv-generator behavior by customizing some
205 parameters:
206 + d/apache2-systemd.conf: add a drop-in file to specify some
207 parameters for the systemd unit (type=Forking and
208 RemainsAfterExit=no), this allow a correct state synchronisation
209 between systemctl status and actual state of apache2 daemon.
210 + d/apache2.install: place the apache2-systemd.conf file in the
211 correct location.
212 - Don't build http2 module (nghttp2 still not in main) (LP 1687454)
213 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
214 + debian/config-dir/mods-available/http2.load: removed.
215 + debian/rules: removed proxy_http2 from configure.
216 * Switch back to OpenSSL 1.0 as we don't yet have 1.1:
217 - debian/control: switch BuildDepends to libssl1.0-dev
218 - debian/control: remove Breaks on gridsite and libapache2-mod-dacs
219 - debian/rules: remove openssl virtual package and logic
220
221 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Fri, 10 Nov 2017 10:51:46 -0500
222
73apache2 (2.4.29-1) unstable; urgency=medium223apache2 (2.4.29-1) unstable; urgency=medium
74224
75 [ Stefan Fritsch ]225 [ Stefan Fritsch ]
@@ -134,6 +284,47 @@ apache2 (2.4.27-3) experimental; urgency=medium
134284
135 -- Stefan Fritsch <sf@debian.org> Sun, 16 Jul 2017 23:11:07 +0200285 -- Stefan Fritsch <sf@debian.org> Sun, 16 Jul 2017 23:11:07 +0200
136286
287apache2 (2.4.27-2ubuntu3) artful; urgency=medium
288
289 * SECURITY UPDATE: optionsbleed information leak
290 - debian/patches/CVE-2017-9798.patch: disallow method registration
291 at run time in server/core.c.
292 - CVE-2017-9798
293
294 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Mon, 18 Sep 2017 11:05:48 -0400
295
296apache2 (2.4.27-2ubuntu2) artful; urgency=medium
297
298 * Undrop (LP 1658469):
299 - Don't build http2 module (nghttp2 still not in main) (LP 1687454)
300 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
301 + debian/config-dir/mods-available/http2.load: removed.
302 + debian/rules: removed proxy_http2 from configure.
303
304 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 02 Aug 2017 13:04:45 -0400
305
306apache2 (2.4.27-2ubuntu1) artful; urgency=medium
307
308 * Merge with Debian unstable (LP: #1702582). Remaining changes:
309 - debian/{control, apache2.install, apache2-utils.ufw.profile,
310 apache2.dirs}: Add ufw profiles.
311 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
312 - debian/patches/086_svn_cross_compiles: Backport several cross
313 fixes from upstream
314 - d/index.html, d/icons/ubuntu-logo.png, d/apache2.postrm: replace
315 Debian with Ubuntu on default page.
316 + d/source/include-binaries: add Ubuntu icon file
317 - Correct systemd-sysv-generator behavior by customizing some
318 parameters:
319 + d/apache2-systemd.conf: add a drop-in file to specify some
320 parameters for the systemd unit (type=Forking and
321 RemainsAfterExit=no), this allow a correct state synchronisation
322 between systemctl status and actual state of apache2 daemon.
323 + d/apache2.install: place the apache2-systemd.conf file in the
324 correct location.
325
326 -- Nishanth Aravamudan <nish.aravamudan@canonical.com> Thu, 27 Jul 2017 13:38:39 -0700
327
137apache2 (2.4.27-2) unstable; urgency=medium328apache2 (2.4.27-2) unstable; urgency=medium
138329
139 * Switch back to openssl 1.0 for now. The transition to 1.1 needs more330 * Switch back to openssl 1.0 for now. The transition to 1.1 needs more
@@ -163,6 +354,55 @@ apache2 (2.4.25-4) unstable; urgency=high
163354
164 -- Stefan Fritsch <sf@debian.org> Tue, 20 Jun 2017 21:31:51 +0200355 -- Stefan Fritsch <sf@debian.org> Tue, 20 Jun 2017 21:31:51 +0200
165356
357apache2 (2.4.25-3ubuntu3) artful; urgency=medium
358
359 * Re-Drop (LP: #1658469):
360 - Don't build experimental http2 module for LTS:
361 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
362 + debian/config-dir/mods-available/http2.load: removed.
363 + debian/rules: removed proxy_http2 from configure.
364 + debian/apache2.maintscript: remove http2 conffile.
365
366 -- Nishanth Aravamudan <nish.aravamudan@canonical.com> Mon, 01 May 2017 09:55:11 -0700
367
368apache2 (2.4.25-3ubuntu2) zesty; urgency=medium
369 * Undrop (LP 1658469):
370 - Don't build experimental http2 module for LTS:
371 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
372 + debian/config-dir/mods-available/http2.load: removed.
373 + debian/rules: removed proxy_http2 from configure.
374 + debian/apache2.maintscript: remove http2 conffile.
375
376 -- Nishanth Aravamudan <nish.aravamudan@canonical.com> Fri, 10 Feb 2017 08:53:43 -0800
377
378apache2 (2.4.25-3ubuntu1) zesty; urgency=medium
379
380 * Merge from Debian unstable (LP: #1663425). Remaining changes:
381 - debian/{control, apache2.install, apache2-utils.ufw.profile,
382 apache2.dirs}: Add ufw profiles.
383 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
384 - debian/patches/086_svn_cross_compiles: Backport several cross
385 fixes from upstream
386 - d/index.html, d/icons/ubuntu-logo.png, d/apache2.postrm: replace
387 Debian with Ubuntu on default page.
388 + d/source/include-binaries: add Ubuntu icon file
389 - Correct systemd-sysv-generator behavior by customizing some
390 parameters:
391 + d/apache2-systemd.conf: add a drop-in file to specify some
392 parameters for the systemd unit (type=Forking and
393 RemainsAfterExit=no), this allow a correct state synchronisation
394 between systemctl status and actual state of apache2 daemon.
395 + d/apache2.install: place the apache2-systemd.conf file in the
396 correct location.
397 * Drop (LP: #1658469):
398 - Don't build experimental http2 module for LTS:
399 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
400 + debian/config-dir/mods-available/http2.load: removed.
401 + debian/rules: removed proxy_http2 from configure.
402 + debian/apache2.maintscript: remove http2 conffile.
403
404 -- Nishanth Aravamudan <nish.aravamudan@canonical.com> Thu, 09 Feb 2017 15:48:28 -0800
405
166apache2 (2.4.25-3) unstable; urgency=medium406apache2 (2.4.25-3) unstable; urgency=medium
167407
168 * Fix detection of systemd to fix 'apache2ctl start' on sysv-init.408 * Fix detection of systemd to fix 'apache2ctl start' on sysv-init.
@@ -224,6 +464,39 @@ apache2 (2.4.25-1) unstable; urgency=medium
224464
225 -- Stefan Fritsch <sf@debian.org> Wed, 21 Dec 2016 23:46:06 +0100465 -- Stefan Fritsch <sf@debian.org> Wed, 21 Dec 2016 23:46:06 +0100
226466
467apache2 (2.4.23-8ubuntu1) zesty; urgency=medium
468
469 * Merge from Debian unstable (LP: #). Remaining changes:
470 - debian/{control, apache2.install, apache2-utils.ufw.profile,
471 apache2.dirs}: Add ufw profiles.
472 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
473 - debian/patches/086_svn_cross_compiles: Backport several cross
474 fixes from upstream
475 - d/index.html, d/icons/ubuntu-logo.png, d/apache2.postrm,
476 d/source/include-binaries: replace Debian with Ubuntu on default
477 page.
478 [ include-binaries change previously undocumented ]
479 - Don't build experimental http2 module for LTS:
480 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
481 + debian/config-dir/mods-available/http2.load: removed.
482 + debian/rules: removed proxy_http2 from configure.
483 + debian/apache2.maintscript: remove http2 conffile.
484 [ Previously undocumented ]
485 - Correct systemd-sysv-generator behavior by customizing some
486 parameters:
487 + d/apache2-systemd.conf: add a drop-in file to specify some
488 parameters for the systemd unit (type=Forking and
489 RemainsAfterExit=no), this allow a correct state synchronisation
490 between systemctl status and actual state of apache2 daemon.
491 + d/apache2.install: place the apache2-systemd.conf file in the
492 correct location.
493 * Drop:
494 - debian/rules: Fix cross-building by passing
495 DEB_{HOST,BUILD}_GNU_TYPE to configure.
496 [ Incorrectly indicated as delta, fixed by Debian in 2.4.18-2 ]
497
498 -- Nishanth Aravamudan <nish.aravamudan@canonical.com> Fri, 09 Dec 2016 11:02:38 +0100
499
227apache2 (2.4.23-8) unstable; urgency=medium500apache2 (2.4.23-8) unstable; urgency=medium
228501
229 * Move the mod_ssl_openssl.h header and the dependency on libssl-dev to a502 * Move the mod_ssl_openssl.h header and the dependency on libssl-dev to a
@@ -234,6 +507,33 @@ apache2 (2.4.23-8) unstable; urgency=medium
234507
235 -- Stefan Fritsch <sf@debian.org> Sun, 20 Nov 2016 00:33:13 +0100508 -- Stefan Fritsch <sf@debian.org> Sun, 20 Nov 2016 00:33:13 +0100
236509
510apache2 (2.4.23-7ubuntu1) zesty; urgency=medium
511
512 * Merge from Debian unstable. Remaining changes:
513 - debian/{control, apache2.install, apache2-utils.ufw.profile,
514 apache2.dirs}: Add ufw profiles.
515 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
516 - debian/rules: Fix cross-building by passing
517 DEB_{HOST,BUILD}_GNU_TYPE to configure.
518 - debian/patches/086_svn_cross_compiles: Backport several cross
519 fixes from upstream
520 - d/index.html, d/icons/ubuntu-logo.png, d/apache2.postrm: replace
521 Debian with Ubuntu on default page.
522 - Don't build experimental http2 module for LTS:
523 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
524 + debian/config-dir/mods-available/http2.load: removed.
525 + debian/rules: removed proxy_http2 from configure.
526 - Correct systemd-sysv-generator behavior by customizing some
527 parameters:
528 + d/apache2-systemd.conf: add a drop-in file to specify some
529 parameters for the systemd unit (type=Forking and
530 RemainsAfterExit=no), this allow a correct state synchronisation
531 between systemctl status and actual state of apache2 daemon.
532 + d/apache2.install: place the apache2-systemd.conf file in the
533 correct location.
534
535 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 16 Nov 2016 09:17:24 -0500
536
237apache2 (2.4.23-7) unstable; urgency=medium537apache2 (2.4.23-7) unstable; urgency=medium
238538
239 * Make apache2-dev depend on openssl 1.0, too. Closes: #844160539 * Make apache2-dev depend on openssl 1.0, too. Closes: #844160
@@ -348,6 +648,55 @@ apache2 (2.4.20-1) unstable; urgency=medium
348648
349 -- Stefan Fritsch <sf@debian.org> Sun, 10 Apr 2016 14:03:41 +0200649 -- Stefan Fritsch <sf@debian.org> Sun, 10 Apr 2016 14:03:41 +0200
350650
651apache2 (2.4.18-2ubuntu4) yakkety; urgency=medium
652
653 * SECURITY UPDATE: proxy request header vulnerability (httpoxy)
654 - debian/patches/CVE-2016-5387.patch: don't pass through HTTP_PROXY in
655 server/util_script.c.
656 - CVE-2016-5387
657
658 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Mon, 18 Jul 2016 14:32:02 -0400
659
660apache2 (2.4.18-2ubuntu3) xenial; urgency=medium
661
662 [ Ryan Harper ]
663 * Drop /etc/apache2/mods-available/http2.load. This was inadvertently
664 introduced in 2.4.18-2ubuntu1. The intention is to not carry this at
665 all, since http2 support is intentionally disabled (see LP 1531864).
666 * d/apache2.maintscript: handle removal of http2.load conffile.
667
668 [ Robie Basak ]
669 * Re-write Ryan's changelog entry.
670
671 -- Robie Basak <robie.basak@ubuntu.com> Fri, 15 Apr 2016 18:00:57 +0000
672
673apache2 (2.4.18-2ubuntu2) xenial; urgency=medium
674
675 * Correct systemd-sysv-generator behavior by customizing some parameters (LP: #1488962)
676 - d/apache2-systemd.conf: add a drop-in file to specify some parameters for the systemd
677 unit (type=Forking and RemainsAfterExit=no), this allow a correct state synchronisation
678 between systemctl status and actual state of apache2 daemon.
679 - d/apache2.install: place the apache2-systemd.conf file in the correct location.
680
681 -- Pierre-André MOREY <pierre-andre.morey@canonical.com> Fri, 08 Apr 2016 11:48:00 +0200
682
683apache2 (2.4.18-2ubuntu1) xenial; urgency=medium
684
685 * Merge from Debian unstable. Remaining changes:
686 - debian/{control, apache2.install, apache2-utils.ufw.profile,
687 apache2.dirs}: Add ufw profiles.
688 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
689 - debian/rules: Fix cross-building by passing
690 DEB_{HOST,BUILD}_GNU_TYPE to configure.
691 - debian/patches/086_svn_cross_compiles: Backport several cross
692 fixes from upstream
693 - d/index.html: replace Debian with Ubuntu on default page.
694 - Don't build experimental http2 module for LTS:
695 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
696 + debian/config-dir/mods-available/http2.load: removed.
697
698 -- Timo Aaltonen <tjaalton@debian.org> Wed, 06 Apr 2016 00:18:31 +0300
699
351apache2 (2.4.18-2) unstable; urgency=low700apache2 (2.4.18-2) unstable; urgency=low
352701
353 * htcacheclean:702 * htcacheclean:
@@ -373,6 +722,24 @@ apache2 (2.4.18-2) unstable; urgency=low
373722
374 -- Stefan Fritsch <sf@debian.org> Mon, 28 Mar 2016 21:58:54 +0200723 -- Stefan Fritsch <sf@debian.org> Mon, 28 Mar 2016 21:58:54 +0200
375724
725apache2 (2.4.18-1ubuntu1) xenial; urgency=medium
726
727 * Merge from Debian unstable. Remaining changes:
728 - debian/{control, apache2.install, apache2-utils.ufw.profile,
729 apache2.dirs}: Add ufw profiles.
730 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
731 - Add dep8 tests.
732 - debian/rules: Fix cross-building by passing
733 DEB_{HOST,BUILD}_GNU_TYPE to configure.
734 - debian/patches/086_svn_cross_compiles: Backport several cross
735 fixes from upstream
736 - d/index.html: replace Debian with Ubuntu on default page.
737 - Don't build experimental http2 module for LTS:
738 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
739 + debian/config-dir/mods-available/http2.load: removed.
740
741 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 21 Jan 2016 15:15:22 -0500
742
376apache2 (2.4.18-1) unstable; urgency=medium743apache2 (2.4.18-1) unstable; urgency=medium
377744
378 * New upstream release:745 * New upstream release:
@@ -380,12 +747,48 @@ apache2 (2.4.18-1) unstable; urgency=medium
380747
381 -- Stefan Fritsch <sf@debian.org> Sat, 19 Dec 2015 09:26:14 +0100748 -- Stefan Fritsch <sf@debian.org> Sat, 19 Dec 2015 09:26:14 +0100
382749
750apache2 (2.4.17-3ubuntu1) xenial; urgency=medium
751
752 * Merge from Debian unstable. Remaining changes:
753 - debian/{control, apache2.install, apache2-utils.ufw.profile,
754 apache2.dirs}: Add ufw profiles.
755 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
756 - Add dep8 tests.
757 - debian/rules: Fix cross-building by passing
758 DEB_{HOST,BUILD}_GNU_TYPE to configure.
759 - debian/patches/086_svn_cross_compiles: Backport several cross
760 fixes from upstream
761 - d/index.html: replace Debian with Ubuntu on default page.
762 - Don't build experimental http2 module for LTS:
763 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
764 + debian/config-dir/mods-available/http2.load: removed.
765
766 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 03 Dec 2015 10:07:35 -0500
767
383apache2 (2.4.17-3) unstable; urgency=medium768apache2 (2.4.17-3) unstable; urgency=medium
384769
385 * mpm_prefork: Fix segfault if started with -X. Closes: #805737770 * mpm_prefork: Fix segfault if started with -X. Closes: #805737
386771
387 -- Stefan Fritsch <sf@debian.org> Mon, 23 Nov 2015 19:52:09 +0100772 -- Stefan Fritsch <sf@debian.org> Mon, 23 Nov 2015 19:52:09 +0100
388773
774apache2 (2.4.17-2ubuntu1) xenial; urgency=medium
775
776 * Merge from Debian unstable. Remaining changes:
777 - debian/{control, apache2.install, apache2-utils.ufw.profile,
778 apache2.dirs}: Add ufw profiles.
779 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
780 - Add dep8 tests.
781 - debian/rules: Fix cross-building by passing
782 DEB_{HOST,BUILD}_GNU_TYPE to configure.
783 - debian/patches/086_svn_cross_compiles: Backport several cross
784 fixes from upstream
785 - d/index.html: replace Debian with Ubuntu on default page.
786 - Don't build experimental http2 module for LTS:
787 + debian/control: removed libnghttp2-dev Build-Depends (in universe).
788 + debian/config-dir/mods-available/http2.load: removed.
789
790 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Fri, 20 Nov 2015 09:11:52 -0500
791
389apache2 (2.4.17-2) unstable; urgency=medium792apache2 (2.4.17-2) unstable; urgency=medium
390793
391 * Revert REDIRECT_URL to pre-2.4.17 behavior for now. The change broke794 * Revert REDIRECT_URL to pre-2.4.17 behavior for now. The change broke
@@ -396,6 +799,31 @@ apache2 (2.4.17-2) unstable; urgency=medium
396799
397 -- Stefan Fritsch <sf@debian.org> Sat, 31 Oct 2015 23:17:11 +0100800 -- Stefan Fritsch <sf@debian.org> Sat, 31 Oct 2015 23:17:11 +0100
398801
802apache2 (2.4.17-1ubuntu1) xenial; urgency=medium
803
804 * Merge from Debian unstable. Remaining changes:
805 - debian/{control, apache2.install, apache2-utils.ufw.profile,
806 apache2.dirs}: Add ufw profiles.
807 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
808 - Add dep8 tests.
809 - debian/rules: Fix cross-building by passing
810 DEB_{HOST,BUILD}_GNU_TYPE to configure.
811 - debian/patches/086_svn_cross_compiles: Backport several cross
812 fixes from upstream
813 - d/index.html: replace Debian with Ubuntu on default page.
814 * Drop patches (applied upstream):
815 - debian/patches/CVE-2015-3183.patch
816 - debian/patches/CVE-2015-3185.patch
817 * Drop changes (adopted in Debian):
818 - Allow "triggers-awaited" and "triggers-pending" states in addition
819 to "installed" when determining whether to defer actions or
820 process deferred actions.
821 * Don't build experimental http2 module for LTS
822 - debian/control: removed libnghttp2-dev Build-Depends (in universe).
823 - debian/config-dir/mods-available/http2.load: removed.
824
825 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Fri, 30 Oct 2015 09:35:46 -0400
826
399apache2 (2.4.17-1) unstable; urgency=medium827apache2 (2.4.17-1) unstable; urgency=medium
400828
401 [ Stefan Fritsch ]829 [ Stefan Fritsch ]
@@ -461,6 +889,49 @@ apache2 (2.4.16-1) unstable; urgency=medium
461889
462 -- Stefan Fritsch <sf@debian.org> Sun, 02 Aug 2015 00:44:07 +0200890 -- Stefan Fritsch <sf@debian.org> Sun, 02 Aug 2015 00:44:07 +0200
463891
892apache2 (2.4.12-2ubuntu2) wily; urgency=medium
893
894 * SECURITY UPDATE: request smuggling via chunked transfer encoding
895 - debian/patches/CVE-2015-3183.patch: refactor chunk parsing in
896 modules/http/http_filters.c.
897 - CVE-2015-3183
898 * SECURITY UPDATE: access restriction bypass via deprecated API
899 - debian/patches/CVE-2015-3185.patch: deprecate old API and add new one
900 in include/http_request.h, server/request.c.
901 - CVE-2015-3185
902
903 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Fri, 24 Jul 2015 09:56:09 -0400
904
905apache2 (2.4.12-2ubuntu1) wily; urgency=medium
906
907 * Merge from Debian unstable. Remaining changes:
908 - debian/{control, apache2.install, apache2-utils.ufw.profile,
909 apache2.dirs}: Add ufw profiles.
910 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
911 - Add dep8 tests.
912 - debian/rules: Fix cross-building by passing
913 DEB_{HOST,BUILD}_GNU_TYPE to configure.
914 - debian/patches/086_svn_cross_compiles: Backport several cross
915 fixes from upstream
916 - d/index.html: replace Debian with Ubuntu on default page.
917 - Allow "triggers-awaited" and "triggers-pending" states in addition
918 to "installed" when determining whether to defer actions or
919 process deferred actions.
920 * Drop patches (applied upstream):
921 - d/p/split-logfile.patch
922 - d/p/CVE-2015-0228.patch
923 * Drop changes (superceded in Debian):
924 - Cherry-pick versioned build-depend on dpkg from Debian for correct
925 dpkg-maintscript-helper symlink_to_dir support.
926 * Drop changes (adopted in Debian):
927 - d/control, d/config-dir/mods-available/ssl.conf,
928 d/ask-for-passphrase, d/apache2.install: Plymouth aware passphrase
929 dialog program ask-for-passphrase.
930 * Fix cross-building configure line in d/rules, which had bit-rotted in
931 previous merges.
932
933 -- Robie Basak <robie.basak@ubuntu.com> Thu, 28 May 2015 16:34:00 +0000
934
464apache2 (2.4.12-2) unstable; urgency=medium935apache2 (2.4.12-2) unstable; urgency=medium
465936
466 [ Jean-Michel Nirgal Vourgère ]937 [ Jean-Michel Nirgal Vourgère ]
@@ -510,6 +981,28 @@ apache2 (2.4.10-10) unstable; urgency=medium
510981
511 -- Stefan Fritsch <sf@debian.org> Sun, 15 Mar 2015 10:47:36 +0100982 -- Stefan Fritsch <sf@debian.org> Sun, 15 Mar 2015 10:47:36 +0100
512983
984apache2 (2.4.10-9ubuntu1) vivid; urgency=medium
985
986 * Merge from Debian unstable. Remaining changes:
987 - debian/{control, apache2.install, apache2-utils.ufw.profile,
988 apache2.dirs}: Add ufw profiles.
989 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
990 - d/control, d/config-dir/mods-available/ssl.conf,
991 - Add dep8 tests.
992 - debian/rules: Fix cross-building by passing
993 DEB_{HOST,BUILD}_GNU_TYPE to configure.
994 - debian/patches/086_svn_cross_compiles: Backport several cross
995 fixes from upstream
996 - d/index.html: replace Debian with Ubuntu on default page.
997 - d/p/split-logfile.patch: fix completely broken split-logfile
998 command.
999 - d/p/CVE-2015-0228.patch: fix logic in modules/lua/lua_request.c to fix a
1000 denial of service in mod_lua via websockets PING
1001 * debian/tests/ssl-passphrase: Add password responder for
1002 systemd-ask-passphrase.
1003
1004 -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 09 Mar 2015 12:03:16 +0100
1005
513apache2 (2.4.10-9) unstable; urgency=medium1006apache2 (2.4.10-9) unstable; urgency=medium
5141007
515 * CVE-2014-8109: mod_lua: Fix handling of the Require line when a1008 * CVE-2014-8109: mod_lua: Fix handling of the Require line when a
@@ -524,6 +1017,54 @@ apache2 (2.4.10-9) unstable; urgency=medium
5241017
525 -- Stefan Fritsch <sf@debian.org> Mon, 22 Dec 2014 20:24:36 +01001018 -- Stefan Fritsch <sf@debian.org> Mon, 22 Dec 2014 20:24:36 +0100
5261019
1020apache2 (2.4.10-8ubuntu3) vivid; urgency=medium
1021
1022 * SECURITY UPDATE: restriction bypass in mod_lua via multiple Require
1023 directives
1024 - debian/patches/CVE-2014-8109.patch: handle multiple Require
1025 directives with different arguments in modules/lua/mod_lua.c.
1026 - CVE-2014-8109
1027 * SECURITY UPDATE: denial of service in mod_lua via websockets PING
1028 - debian/patches/CVE-2015-0228.patch: fix logic in
1029 modules/lua/lua_request.c.
1030 - CVE-2015-0228
1031
1032 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 05 Mar 2015 10:56:34 -0500
1033
1034apache2 (2.4.10-8ubuntu2) vivid; urgency=medium
1035
1036 * Allow "triggers-awaited" and "triggers-pending" states in addition to
1037 "installed" when determining whether to defer actions or process
1038 deferred actions (LP: #1393832).
1039
1040 -- Colin Watson <cjwatson@ubuntu.com> Wed, 26 Nov 2014 11:31:44 +0000
1041
1042apache2 (2.4.10-8ubuntu1) vivid; urgency=medium
1043
1044 * Merge from Debian unstable. Remaining changes:
1045 - debian/{control, apache2.install, apache2-utils.ufw.profile,
1046 apache2.dirs}: Add ufw profiles.
1047 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
1048 - d/control, d/config-dir/mods-available/ssl.conf,
1049 d/ask-for-passphrase, d/apache2.install: Plymouth aware passphrase
1050 dialog program ask-for-passphrase.
1051 - Add dep8 tests.
1052 - debian/rules: Fix cross-building by passing
1053 DEB_{HOST,BUILD}_GNU_TYPE to configure.
1054 - debian/patches/086_svn_cross_compiles: Backport several cross
1055 fixes from upstream
1056 - d/index.html: replace Debian with Ubuntu on default page.
1057 - d/p/split-logfile.patch: fix completely broken split-logfile
1058 command.
1059 * Fixes from Debian included in merge:
1060 - Crash caused by OCSP stapling code; this was erroneously
1061 attributed to Debian in my previous merge, but actually only
1062 appears in 2.4.10-8; with thanks to Stefan Fritsch (LP: #1366174).
1063 * Cherry-pick versioned build-depend on dpkg from Debian for correct
1064 dpkg-maintscript-helper symlink_to_dir support.
1065
1066 -- Robie Basak <robie.basak@ubuntu.com> Fri, 21 Nov 2014 15:15:58 +0000
1067
527apache2 (2.4.10-8) unstable; urgency=medium1068apache2 (2.4.10-8) unstable; urgency=medium
5281069
529 * Bump dpkg Pre-Depends to version that supports relative symlinks in1070 * Bump dpkg Pre-Depends to version that supports relative symlinks in
@@ -538,6 +1079,33 @@ apache2 (2.4.10-8) unstable; urgency=medium
5381079
539 -- Stefan Fritsch <sf@debian.org> Tue, 18 Nov 2014 15:18:18 +01001080 -- Stefan Fritsch <sf@debian.org> Tue, 18 Nov 2014 15:18:18 +0100
5401081
1082apache2 (2.4.10-7ubuntu1) vivid; urgency=medium
1083
1084 * Merge from Debian unstable. Remaining changes:
1085 - debian/{control, apache2.install, apache2-utils.ufw.profile,
1086 apache2.dirs}: Add ufw profiles.
1087 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
1088 - d/control, d/config-dir/mods-available/ssl.conf,
1089 d/ask-for-passphrase, d/apache2.install: Plymouth aware passphrase
1090 dialog program ask-for-passphrase.
1091 - Add dep8 tests.
1092 - debian/rules: Fix cross-building by passing
1093 DEB_{HOST,BUILD}_GNU_TYPE to configure.
1094 - debian/patches/086_svn_cross_compiles: Backport several cross
1095 fixes from upstream
1096 - d/index.html: replace Debian with Ubuntu on default page.
1097 - d/p/split-logfile.patch: fix completely broken split-logfile command.
1098 * Fixes from Debian included in merge:
1099 - Don't use a2query in preinst, as it may not be available yet
1100 (LP: #1312533).
1101 - Crash caused by OCSP stapling code (LP: #1366174).
1102 - Disable SSLv3 in default config (LP: #1358305).
1103 - If apache2 is not configured yet, defer actions executed via
1104 apache2-maintscript-helper. This fixes installation failures if a
1105 module package is configured first (LP: #1312854).
1106
1107 -- Robie Basak <robie.basak@ubuntu.com> Mon, 17 Nov 2014 18:04:40 +0000
1108
541apache2 (2.4.10-7) unstable; urgency=medium1109apache2 (2.4.10-7) unstable; urgency=medium
5421110
543 * Handle transitions of doc dirs and symlinks correctly during upgrade.1111 * Handle transitions of doc dirs and symlinks correctly during upgrade.
@@ -621,6 +1189,25 @@ apache2 (2.4.10-2) unstable; urgency=medium
6211189
622 -- Stefan Fritsch <sf@debian.org> Sun, 21 Sep 2014 22:58:33 +02001190 -- Stefan Fritsch <sf@debian.org> Sun, 21 Sep 2014 22:58:33 +0200
6231191
1192apache2 (2.4.10-1ubuntu1) utopic; urgency=medium
1193
1194 * Merge from Debian unstable. Remaining changes:
1195 - debian/{control, apache2.install, apache2-utils.ufw.profile,
1196 apache2.dirs}: Add ufw profiles.
1197 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
1198 - d/control, d/config-dir/mods-available/ssl.conf, d/ask-for-passphrase,
1199 d/apache2.install: Plymouth aware passphrase dialog program
1200 ask-for-passphrase.
1201 - Add dep8 tests.
1202 - debian/rules: Fix cross-building by passing DEB_{HOST,BUILD}_GNU_TYPE to
1203 configure.
1204 - debian/patches/086_svn_cross_compiles: Backport several cross fixes from
1205 upstream
1206 - d/index.html: replace Debian with Ubuntu on default page.
1207 - d/p/split-logfile.patch: fix completely broken split-logfile command.
1208
1209 -- Robie Basak <robie.basak@ubuntu.com> Thu, 24 Jul 2014 15:13:16 +0000
1210
624apache2 (2.4.10-1) unstable; urgency=medium1211apache2 (2.4.10-1) unstable; urgency=medium
6251212
626 [ Arno Töll ]1213 [ Arno Töll ]
@@ -668,6 +1255,45 @@ apache2 (2.4.9-2) unstable; urgency=medium
6681255
669 -- Stefan Fritsch <sf@debian.org> Sun, 08 Jun 2014 10:38:04 +02001256 -- Stefan Fritsch <sf@debian.org> Sun, 08 Jun 2014 10:38:04 +0200
6701257
1258apache2 (2.4.9-1ubuntu2) utopic; urgency=medium
1259
1260 * Revert 2.4.4-6ubuntu3 and build against lua 5.1 again, since Apache doesn't
1261 yet support building against lua 5.2 (LP: #1323930).
1262
1263 -- Robie Basak <robie.basak@ubuntu.com> Wed, 28 May 2014 08:55:25 +0000
1264
1265apache2 (2.4.9-1ubuntu1) utopic; urgency=medium
1266
1267 * Merge from Debian unstable. Remaining changes:
1268 - debian/{control, apache2.install, apache2-utils.ufw.profile,
1269 apache2.dirs}: Add ufw profiles.
1270 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
1271 - d/control, d/config-dir/mods-available/ssl.conf, d/ask-for-passphrase,
1272 d/apache2.install, d/tests/ssl-passphrase: Plymouth aware passphrase
1273 dialog program ask-for-passphrase.
1274 - debian/rules: Fix cross-building by passing DEB_{HOST,BUILD}_GNU_TYPE to
1275 configure.
1276 - debian/patches/086_svn_cross_compiles: Backport several cross fixes from
1277 upstream
1278 - Build using lua5.2.
1279 - d/tests/chroot: dep8 test for ChrootDir case.
1280 - d/tests/ssl-passphrase: update for new default path /var/www/html.
1281 - d/tests/duplicate-module-load: check for duplicate module loads.
1282 - d/index.html: replace Debian with Ubuntu on default page (LP: #1288690).
1283 - d/p/split-logfile.patch: fix completely broken split-logfile command
1284 (LP: #1299162). Thanks to Holger Mauermann.
1285 * Drop changes (upstreamed):
1286 - d/p/ignore-quilt-dir: adjust build system so that it does not use
1287 files find inside the .pc directory. This stops a double module load
1288 causing later havoc, including "ChrootDir" directive failure.
1289 - debian/patches/CVE-2013-6438.patch: properly calculate correct length
1290 in modules/dav/main/util.c.
1291 - debian/patches/CVE-2014-0098.patch: properly parse tokens in
1292 modules/loggers/mod_log_config.c.
1293 * d/tests/control: adjust dep8 tests for new "breaks-testbed" facility.
1294
1295 -- Robie Basak <robie.basak@ubuntu.com> Fri, 09 May 2014 19:30:04 +0000
1296
671apache2 (2.4.9-1) unstable; urgency=medium1297apache2 (2.4.9-1) unstable; urgency=medium
6721298
673 * New upstream version.1299 * New upstream version.
@@ -700,6 +1326,63 @@ apache2 (2.4.9-1) unstable; urgency=medium
7001326
701 -- Stefan Fritsch <sf@debian.org> Sat, 29 Mar 2014 22:50:32 +01001327 -- Stefan Fritsch <sf@debian.org> Sat, 29 Mar 2014 22:50:32 +0100
7021328
1329apache2 (2.4.7-1ubuntu4) trusty; urgency=medium
1330
1331 * d/p/split-logfile.patch: fix completely broken split-logfile command
1332 (LP: #1299162). Thanks to Holger Mauermann.
1333
1334 -- Robie Basak <robie.basak@ubuntu.com> Thu, 03 Apr 2014 11:21:22 +0000
1335
1336apache2 (2.4.7-1ubuntu3) trusty; urgency=medium
1337
1338 * SECURITY UPDATE: denial of service via mod_dav incorrect end of string
1339 calculation
1340 - debian/patches/CVE-2013-6438.patch: properly calculate correct length
1341 in modules/dav/main/util.c.
1342 - CVE-2013-6438
1343 * SECURITY UPDATE: denial of service via truncated cookie and
1344 mod_log_config
1345 - debian/patches/CVE-2014-0098.patch: properly parse tokens in
1346 modules/loggers/mod_log_config.c.
1347 - CVE-2014-0098
1348
1349 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 20 Mar 2014 08:34:10 -0400
1350
1351apache2 (2.4.7-1ubuntu2) trusty; urgency=medium
1352
1353 * d/index.html: replace Debian with Ubuntu on default page
1354 (LP: #1288690).
1355
1356 -- Robie Basak <robie.basak@ubuntu.com> Wed, 19 Mar 2014 11:04:21 +0000
1357
1358apache2 (2.4.7-1ubuntu1) trusty; urgency=medium
1359
1360 * Merge from Debian unstable. Remaining changes:
1361 - debian/{control, apache2.install, apache2-utils.ufw.profile,
1362 apache2.dirs}: Add ufw profiles.
1363 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
1364 - d/control, d/config-dir/mods-available/ssl.conf,
1365 d/ask-for-passphrase, d/apache2.install, d/tests/ssl-passphrase:
1366 Plymouth aware passphrase dialog program ask-for-passphrase.
1367 - debian/rules: Fix cross-building by passing DEB_{HOST,BUILD}_GNU_TYPE
1368 to configure.
1369 - debian/patches/086_svn_cross_compiles: Backport several cross fixes
1370 from upstream
1371 - Build using lua5.2.
1372 - d/tests/chroot: dep8 test for ChrootDir case.
1373 - d/p/ignore-quilt-dir: adjust build system so that it does not use
1374 files find inside the .pc directory. This stops a double module load
1375 causing later havoc, including "ChrootDir" directive failure.
1376 * Drop changes:
1377 - debian/{control, rules}: Enable PIE hardening: no longer required;
1378 2.4.7-1 is already hardened.
1379 - d/p/itk-rerun-configure.patch: no longer needed, as ITK support has moved
1380 out of this package.
1381 * d/tests/ssl-passphrase: update for new default path /var/www/html.
1382 * d/tests/duplicate-module-load: check for duplicate module loads.
1383
1384 -- Robie Basak <robie.basak@ubuntu.com> Tue, 14 Jan 2014 17:23:47 +0000
1385
703apache2 (2.4.7-1) unstable; urgency=low1386apache2 (2.4.7-1) unstable; urgency=low
7041387
705 New upstream version1388 New upstream version
@@ -763,6 +1446,53 @@ apache2 (2.4.6-3) unstable; urgency=low
7631446
764 -- Stefan Fritsch <sf@debian.org> Mon, 12 Aug 2013 20:15:38 +02001447 -- Stefan Fritsch <sf@debian.org> Mon, 12 Aug 2013 20:15:38 +0200
7651448
1449apache2 (2.4.6-2ubuntu4) trusty; urgency=low
1450
1451 * d/p/ignore-quilt-dir, d/p/itk-rerun-configure.patch: adjust build system so
1452 that it does not use files find inside the .pc directory. This stops a
1453 double module load causing later havoc, including "ChrootDir" directive
1454 failure (LP: #1251939). Thanks to Stefan Fritsch.
1455 * d/tests/chroot: dep8 test for ChrootDir case.
1456
1457 -- Robie Basak <robie.basak@ubuntu.com> Thu, 28 Nov 2013 16:21:51 +0000
1458
1459apache2 (2.4.6-2ubuntu3) trusty; urgency=low
1460
1461 * debian/apache2.install: Correct path for ufw.
1462 (LP: #1252722)
1463
1464 -- Chuck Short <zulcss@ubuntu.com> Tue, 19 Nov 2013 08:59:54 -0500
1465
1466apache2 (2.4.6-2ubuntu2) saucy; urgency=low
1467
1468 * d/ask-for-passphrase: mark executable so that apache2 can run it. Fixes
1469 passphrase prompting for SSL certificates that are passphrase protected.
1470 * Add dep8 test for SSL passphrase prompting.
1471
1472 -- Robie Basak <robie.basak@ubuntu.com> Fri, 09 Aug 2013 13:08:52 +0000
1473
1474apache2 (2.4.6-2ubuntu1) saucy; urgency=low
1475
1476 * Merge from Debian unstable. Remaining changes:
1477 - debian/{control, rules}: Enable PIE hardening.
1478 - debian/{control, apache2.install, apache2-utils.ufw.profile,
1479 apache2.dirs}: Add ufw profiles.
1480 - debian/apache2.py, debian/apache2-bin.install: Add apport hook.
1481 - debian/control, debian/config-dir/mods-available/ssl.conf,
1482 debian/ask-for-passphrase, debian/apache2.install: Plymouth aware
1483 passphrase dialog program ask-for-passphrase.
1484 - debian/rules: Fix cross-building by passing DEB_{HOST,BUILD}_GNU_TYPE
1485 to configure.
1486 - debian/patches/086_svn_cross_compiles: Backport several cross fixes
1487 from upstream
1488 * Dropped changes:
1489 - debian/patches/CVE-2013-1896.patch: upstream
1490 * Fixed module dependencies (LP: #1205314)
1491 - debian/config-dir/mods-available/lbmethod_*: properly specify
1492 proxy_balancer, not mod_proxy_balancer.
1493
1494 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Fri, 26 Jul 2013 08:31:33 -0400
1495
766apache2 (2.4.6-2) unstable; urgency=low1496apache2 (2.4.6-2) unstable; urgency=low
7671497
768 [ Stefan Fritsch ]1498 [ Stefan Fritsch ]
@@ -815,6 +1545,56 @@ apache2 (2.4.6-1) unstable; urgency=low
8151545
816 -- Arno Töll <arno@debian.org> Sun, 21 Jul 2013 18:44:42 +02001546 -- Arno Töll <arno@debian.org> Sun, 21 Jul 2013 18:44:42 +0200
8171547
1548apache2 (2.4.4-6ubuntu5) saucy; urgency=low
1549
1550 * SECURITY UPDATE: denial of service via MERGE request
1551 - debian/patches/CVE-2013-1896.patch: make sure DAV is enabled for URI
1552 in modules/dav/main/mod_dav.c.
1553 - CVE-2013-1896
1554
1555 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 18 Jul 2013 11:20:47 -0400
1556
1557apache2 (2.4.4-6ubuntu4) saucy; urgency=low
1558
1559 * d/apache2-{utils,bin}.install: move apport hook from apache2-utils to
1560 apache2-bin. apache2-utils is only suggested by apache2, so may not
1561 always be installed by bug reporters. However, apache2-bin will always
1562 need to be installed for Apache to be functional, so this is a better
1563 place for the apport hook. apache2-bin already Conflicts/Replaces
1564 apache2.2-common, so this also fixes (LP: #1199318).
1565 * d/apache2.py: adjust apport hook for new location of configuration
1566 files in apache2 >= 2.4: they have moved from apache2.2-common to
1567 apache2.
1568
1569 -- Robie Basak <robie.basak@ubuntu.com> Wed, 17 Jul 2013 17:54:22 +0000
1570
1571apache2 (2.4.4-6ubuntu3) saucy; urgency=low
1572
1573 * Build using lua5.2.
1574
1575 -- Matthias Klose <doko@ubuntu.com> Wed, 17 Jul 2013 14:24:42 +0200
1576
1577apache2 (2.4.4-6ubuntu2) saucy; urgency=low
1578
1579 * debian/rules: Fix FTBFS while installing ufw.
1580
1581 -- Chuck Short <zulcss@ubuntu.com> Tue, 02 Jul 2013 10:10:14 -0500
1582
1583apache2 (2.4.4-6ubuntu1) saucy; urgency=low
1584
1585 * Merge from Debian unstable. Remaining changes:
1586 - debian/{control, rules}: Enable PIE hardening.
1587 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
1588 - debian/apache2.py, debian/apache2.2-common.install: Add apport hook.
1589 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
1590 Plymouth aware passphrase dialog program ask-for-passphrase.
1591 * Dropped changes:
1592 - debian/patches/CVE-2012-2687.patch: Dropped no longer needed.
1593 - debian/patches/CVE-2012-3499_4558.patch: Dropped no longer needed.
1594 - debian/patches/CVE-2012-4929.patch: Dropped no longer needed.
1595
1596 -- Chuck Short <zulcss@ubuntu.com> Tue, 02 Jul 2013 08:34:01 -0500
1597
818apache2 (2.4.4-6) unstable; urgency=low1598apache2 (2.4.4-6) unstable; urgency=low
8191599
820 * Denote exact versions breaking gnome-user-share now that Gnome maintainers1600 * Denote exact versions breaking gnome-user-share now that Gnome maintainers
@@ -1286,6 +2066,122 @@ apache2 (2.4.1-1) experimental; urgency=low
12862066
1287 -- Stefan Fritsch <sf@debian.org> Mon, 19 Mar 2012 10:46:02 +01002067 -- Stefan Fritsch <sf@debian.org> Mon, 19 Mar 2012 10:46:02 +0100
12882068
2069apache2 (2.2.22-6ubuntu5) raring; urgency=low
2070
2071 * SECURITY UPDATE: multiple cross-site scripting issues
2072 - debian/patches/CVE-2012-3499_4558.patch: properly escape html in
2073 modules/generators/{mod_info.c,mod_status.c},
2074 modules/ldap/util_ldap_cache_mgr.c, modules/mappers/mod_imagemap.c,
2075 modules/proxy/{mod_proxy_balancer.c,mod_proxy_ftp.c}.
2076 - CVE-2012-3499
2077 - CVE-2012-4558
2078 * SECURITY UPDATE: symlink attack in apache2ctl script
2079 - debian/apache2ctl: introduce and use a safer mkdir_chown() function.
2080 - Thanks to Stefan Fritsch for the fix.
2081 - CVE-2013-1048
2082
2083 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Fri, 15 Mar 2013 07:59:58 -0400
2084
2085apache2 (2.2.22-6ubuntu4) raring; urgency=low
2086
2087 * Fix cross-building by passing DEB_{HOST,BUILD}_GNU_TYPE to configure.
2088 * Skip module sanity check between MPMs if cross-building without the
2089 kernel/binfmt support to run our target binaries on the build system.
2090 * Backport several cross fixes from upstream as 086_svn_cross_compiles.
2091
2092 -- Adam Conrad <adconrad@ubuntu.com> Wed, 05 Dec 2012 02:21:46 -0700
2093
2094apache2 (2.2.22-6ubuntu3) raring; urgency=low
2095
2096 * SECURITY UPDATE: XSS vulnerability in mod_negotiation
2097 - debian/patches/CVE-2012-2687.patch: escape filenames in
2098 modules/mappers/mod_negotiation.c.
2099 - CVE-2012-2687
2100 * SECURITY UPDATE: CRIME attack ssl attack (LP: #1068854)
2101 - debian/patches/CVE-2012-4929.patch: backport SSLCompression on|off
2102 directive. Defaults to off as enabling compression enables the CRIME
2103 attack.
2104 - CVE-2012-4929
2105
2106 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 08 Nov 2012 17:56:24 -0500
2107
2108apache2 (2.2.22-6ubuntu2) quantal; urgency=low
2109
2110 * debian/apache2.py
2111 - Update apport hook for python3 ; thanks to Edward Donovan (LP: #1013171)
2112 - Check if this directory exists: /etc/apache2/sites-enabled/
2113
2114 -- Matthieu Baerts (matttbe) <matttbe@gmail.com> Mon, 16 Jul 2012 10:02:18 +0200
2115
2116apache2 (2.2.22-6ubuntu1) quantal; urgency=low
2117
2118 * Merge from Debian unstable. Remaining changes:
2119 - debian/{control, rules}: Enable PIE hardening.
2120 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2121 - debian/apache2.py, debian/apache2.2-common.install: Add apport hook.
2122 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2123 Plymouth aware passphrase dialog program ask-for-passphrase.
2124 * Dropped changes:
2125 - debian/control: Add bzr tag and point it to our tree; this is not
2126 really required and just increases the delta.
2127
2128 -- Robie Basak <robie.basak@ubuntu.com> Fri, 08 Jun 2012 11:37:31 +0100
2129
2130apache2 (2.2.22-6) unstable; urgency=low
2131
2132 [ Stefan Fritsch ]
2133 * Fix regression causing apache2 to cache "206 partial content" responses,
2134 and then serving these partial responses when replying to normal requests.
2135 Closes: #671204
2136 * Add section to security.conf that shows how to forbid access to VCS
2137 directories. Closes: #548213
2138 * Update ssl default cipher config, add alternative speed optimized config.
2139 Closes: #649020
2140 * Add "AddCharset" for .brf files in default mod_mime config.
2141 Closes: #402567
2142 * Don't create httpd.conf anymore and don't include it in apache2.conf. If
2143 it contains local modifications, move it to /etc/apache2/conf.d/httpd.conf
2144 * Port some of the comments in apache2.conf from the 2.4 package.
2145 * Compile mod_version statically, drop associated module load file.
2146 * If apache2 is not running, make "/etc/init.d/apache2 reload" skip the
2147 configtest.
2148 * Note in README.Debian that future versions of the package will have the
2149 include statements changed to include only *.conf.
2150 * Change compiled-in document root to /var/www, to avoid strange error
2151 messages.
2152 * Use "dh --with autotools_dev" instead of patching config.sub/config.guess.
2153
2154 [ Arno Töll ]
2155 * Fix apxs to import LDFLAGS from config_vars.mk. Moreover, make it possible
2156 to override LDFLAGS at compile time by defining LDLAGS in the environment,
2157 just like it is possible for CFLAGS. This also means, config_vars.mk now
2158 exports hardening build flags by default.
2159 * Update doc-base metadata for the apache2-doc package.
2160
2161 -- Stefan Fritsch <sf@debian.org> Tue, 29 May 2012 22:05:48 +0200
2162
2163apache2 (2.2.22-5) unstable; urgency=low
2164
2165 * Make LoadFile and LoadModule look in the standard search paths if the
2166 dso file name is given as a pure filename. This helps with the multi-arch
2167 transition.
2168
2169 -- Stefan Fritsch <sf@debian.org> Mon, 30 Apr 2012 23:38:33 +0200
2170
2171apache2 (2.2.22-4) unstable; urgency=high
2172
2173 * CVE-2012-0216: Remove "Alias /doc /usr/share/doc" from the default virtual
2174 hosts' config files.
2175 If scripting modules like mod_php or mod_rivet are enabled on systems
2176 where either 1) some frontend server forwards connections to an apache2
2177 backend server on the localhost address, or 2) the machine running
2178 apache2 is also used for web browsing, this could allow a remote
2179 attacker to execute example scripts stored under /usr/share/doc.
2180 Depending on the installed packages, this could lead to issues like cross
2181 site scripting, code execution, or leakage of sensitive data.
2182
2183 -- Stefan Fritsch <sf@debian.org> Sun, 15 Apr 2012 23:41:43 +0200
2184
1289apache2 (2.2.22-3) unstable; urgency=low2185apache2 (2.2.22-3) unstable; urgency=low
12902186
1291 * Fix "FTBFS: mkdir: cannot create directory `debian/build-tree/arch':2187 * Fix "FTBFS: mkdir: cannot create directory `debian/build-tree/arch':
@@ -1306,6 +2202,18 @@ apache2 (2.2.22-2) unstable; urgency=low
13062202
1307 -- Stefan Fritsch <sf@debian.org> Thu, 15 Mar 2012 00:02:31 +01002203 -- Stefan Fritsch <sf@debian.org> Thu, 15 Mar 2012 00:02:31 +0100
13082204
2205apache2 (2.2.22-1ubuntu1) precise; urgency=low
2206
2207 * Merge from Debian testing. Remaining changes:
2208 - debian/{control, rules}: Enable PIE hardening.
2209 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2210 - debian/control: Add bzr tag and point it to our tree
2211 - debian/apache2.py, debian/apache2.2-common.install: Add apport hook.
2212 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2213 Plymouth aware passphrase dialog program ask-for-passphrase.
2214
2215 -- Chuck Short <zulcss@ubuntu.com> Sun, 12 Feb 2012 20:06:35 -0500
2216
1309apache2 (2.2.22-1) unstable; urgency=low2217apache2 (2.2.22-1) unstable; urgency=low
13102218
1311 [ Stefan Fritsch ]2219 [ Stefan Fritsch ]
@@ -1323,6 +2231,18 @@ apache2 (2.2.22-1) unstable; urgency=low
13232231
1324 -- Stefan Fritsch <sf@debian.org> Wed, 01 Feb 2012 21:49:04 +0100 2232 -- Stefan Fritsch <sf@debian.org> Wed, 01 Feb 2012 21:49:04 +0100
13252233
2234apache2 (2.2.21-5ubuntu1) precise; urgency=low
2235
2236 * Merge from Debian testing. Remaining changes:
2237 - debian/{control, rules}: Enable PIE hardening.
2238 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2239 - debian/control: Add bzr tag and point it to our tree
2240 - debian/apache2.py, debian/apache2.2-common.install: Add apport hook.
2241 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2242 Plymouth aware passphrase dialog program ask-for-passphrase.
2243
2244 -- Chuck Short <zulcss@ubuntu.com> Mon, 09 Jan 2012 06:26:31 +0000
2245
1326apache2 (2.2.21-5) unstable; urgency=low2246apache2 (2.2.21-5) unstable; urgency=low
13272247
1328 [ Arno Töll ]2248 [ Arno Töll ]
@@ -1376,6 +2296,26 @@ apache2 (2.2.21-4) unstable; urgency=low
13762296
1377 -- Stefan Fritsch <sf@debian.org> Thu, 29 Dec 2011 12:09:14 +01002297 -- Stefan Fritsch <sf@debian.org> Thu, 29 Dec 2011 12:09:14 +0100
13782298
2299apache2 (2.2.21-3ubuntu2) precise; urgency=low
2300
2301 * d/ask-for-passphrase: Flip the logic of this script so that it checks
2302 first to see if apache is being started from a TTY, and then if not,
2303 tries plymouth. (LP: #887410)
2304
2305 -- Clint Byrum <clint@ubuntu.com> Tue, 06 Dec 2011 16:49:33 -0800
2306
2307apache2 (2.2.21-3ubuntu1) precise; urgency=low
2308
2309 * Merge from Debian testing. Remaining changes:
2310 - debian/{control, rules}: Enable PIE hardening.
2311 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2312 - debian/control: Add bzr tag and point it to our tree
2313 - debian/apache2.py, debian/apache2.2-common.install: Add apport hook.
2314 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2315 Plymouth aware passphrase dialog program ask-for-passphrase.
2316
2317 -- Chuck Short <zulcss@ubuntu.com> Fri, 09 Dec 2011 05:20:43 +0000
2318
1379apache2 (2.2.21-3) unstable; urgency=medium2319apache2 (2.2.21-3) unstable; urgency=medium
13802320
1381 * Fix CVE-2011-4317: Prevent unintended pattern expansion in some2321 * Fix CVE-2011-4317: Prevent unintended pattern expansion in some
@@ -1390,6 +2330,24 @@ apache2 (2.2.21-3) unstable; urgency=medium
13902330
1391 -- Stefan Fritsch <sf@debian.org> Sat, 03 Dec 2011 18:54:03 +01002331 -- Stefan Fritsch <sf@debian.org> Sat, 03 Dec 2011 18:54:03 +0100
13922332
2333apache2 (2.2.21-2ubuntu2) precise; urgency=low
2334
2335 * No-change rebuild to drop spurious libsfgcc1 dependency on armhf.
2336
2337 -- Adam Conrad <adconrad@ubuntu.com> Fri, 02 Dec 2011 17:36:28 -0700
2338
2339apache2 (2.2.21-2ubuntu1) precise; urgency=low
2340
2341 * Merge from debian unstable. Remaining changes:
2342 - debian/{control, rules}: Enable PIE hardening.
2343 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2344 - debian/control: Add bzr tag and point it to our tree
2345 - debian/apache2.py, debian/apache2.2-common.install: Add apport hook.
2346 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2347 Plymouth aware passphrase dialog program ask-for-passphrase.
2348
2349 -- Chuck Short <zulcss@ubuntu.com> Fri, 14 Oct 2011 16:01:29 +0000
2350
1393apache2 (2.2.21-2) unstable; urgency=high2351apache2 (2.2.21-2) unstable; urgency=high
13942352
1395 * Fix CVE-2011-3368: Prevent unintended pattern expansion in some2353 * Fix CVE-2011-3368: Prevent unintended pattern expansion in some
@@ -1407,6 +2365,19 @@ apache2 (2.2.21-1) unstable; urgency=low
14072365
1408 -- Stefan Fritsch <sf@debian.org> Mon, 26 Sep 2011 18:16:11 +02002366 -- Stefan Fritsch <sf@debian.org> Mon, 26 Sep 2011 18:16:11 +0200
14092367
2368apache2 (2.2.20-1ubuntu1) oneiric; urgency=low
2369
2370 * Merge from debian unstable to fix CVE-2011-3192 (LP: #837991).
2371 Remaining changes:
2372 - debian/{control, rules}: Enable PIE hardening.
2373 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2374 - debian/control: Add bzr tag and point it to our tree
2375 - debian/apache2.py, debian/apache2.2-common.install: Add apport hook.
2376 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2377 Plymouth aware passphrase dialog program ask-for-passphrase.
2378
2379 -- Steve Beattie <sbeattie@ubuntu.com> Tue, 06 Sep 2011 01:17:15 -0700
2380
1410apache2 (2.2.20-1) unstable; urgency=low2381apache2 (2.2.20-1) unstable; urgency=low
14112382
1412 * New upstream release.2383 * New upstream release.
@@ -1429,6 +2400,18 @@ apache2 (2.2.19-2) unstable; urgency=high
14292400
1430 -- Stefan Fritsch <sf@debian.org> Mon, 29 Aug 2011 17:08:17 +02002401 -- Stefan Fritsch <sf@debian.org> Mon, 29 Aug 2011 17:08:17 +0200
14312402
2403apache2 (2.2.19-1ubuntu1) oneiric; urgency=low
2404
2405 * Merge from debian unstable (LP: #787013). Remaining changes:
2406 - debian/{control, rules}: Enable PIE hardening.
2407 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2408 - debian/control: Add bzr tag and point it to our tree
2409 - debian/apache2.py, debian/apache2.2-common.install: Add apport hook.
2410 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2411 Plymouth aware passphrase dialog program ask-for-passphrase.
2412
2413 -- Andres Rodriguez <andreserl@ubuntu.com> Mon, 23 May 2011 10:16:09 -0400
2414
1432apache2 (2.2.19-1) unstable; urgency=low2415apache2 (2.2.19-1) unstable; urgency=low
14332416
1434 * New upstream release.2417 * New upstream release.
@@ -1446,6 +2429,18 @@ apache2 (2.2.19-1) unstable; urgency=low
14462429
1447 -- Stefan Fritsch <sf@debian.org> Sun, 22 May 2011 10:21:21 +02002430 -- Stefan Fritsch <sf@debian.org> Sun, 22 May 2011 10:21:21 +0200
14482431
2432apache2 (2.2.17-3ubuntu1) oneiric; urgency=low
2433
2434 * Merge from debian unstable. Remaining changes:
2435 - debian/{control, rules}: Enable PIE hardening.
2436 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2437 - debian/control: Add bzr tag and point it to our tree
2438 - debain/apache2.py, debian/apache2.2-common.isntall: Add apport hook.
2439 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2440 Plymouth aware passphrase dialog program ask-for-passphrase.
2441
2442 -- Chuck Short <zulcss@ubuntu.com> Mon, 11 Apr 2011 02:13:30 +0100
2443
1449apache2 (2.2.17-3) unstable; urgency=low2444apache2 (2.2.17-3) unstable; urgency=low
14502445
1451 * Fix compilation with OpenSSL without SSLv2 support. Closes: #6220492446 * Fix compilation with OpenSSL without SSLv2 support. Closes: #622049
@@ -1472,6 +2467,18 @@ apache2 (2.2.17-2) unstable; urgency=high
14722467
1473 -- Stefan Fritsch <sf@debian.org> Mon, 21 Mar 2011 23:01:17 +01002468 -- Stefan Fritsch <sf@debian.org> Mon, 21 Mar 2011 23:01:17 +0100
14742469
2470apache2 (2.2.17-1ubuntu1) natty; urgency=low
2471
2472 * Merge from debian unstable, remaining changes:
2473 - debian/{control, rules}: Enable PIE hardening.
2474 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2475 - debian/control: Add bzr tag and point it to our tree
2476 - debain/apache2.py, debian/apache2.2-common.isntall: Add apport hook.
2477 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2478 Plymouth aware passphrase dialog program ask-for-passphrase.
2479
2480 -- Chuck Short <zulcss@ubuntu.com> Tue, 22 Feb 2011 13:02:08 -0500
2481
1475apache2 (2.2.17-1) unstable; urgency=low2482apache2 (2.2.17-1) unstable; urgency=low
14762483
1477 * New upstream version2484 * New upstream version
@@ -1480,6 +2487,32 @@ apache2 (2.2.17-1) unstable; urgency=low
14802487
1481 -- Stefan Fritsch <sf@debian.org> Tue, 15 Feb 2011 23:30:18 +01002488 -- Stefan Fritsch <sf@debian.org> Tue, 15 Feb 2011 23:30:18 +0100
14822489
2490apache2 (2.2.16-6ubuntu3) natty; urgency=low
2491
2492 * debian/rules: Don't use "-fno-strict-aliasing" since it causes
2493 apache FTBFS on amd64. (LP: #711293)
2494
2495 -- Chuck Short <zulcss@ubuntu.com> Tue, 01 Feb 2011 10:19:55 -0500
2496
2497apache2 (2.2.16-6ubuntu2) natty; urgency=low
2498
2499 * debian/rules: Use "-fno-strict-aliasing" to work around a gcc bug.
2500 (LP: #697105)
2501
2502 -- Chuck Short <zulcss@ubuntu.com> Tue, 25 Jan 2011 11:14:58 -0500
2503
2504apache2 (2.2.16-6ubuntu1) natty; urgency=low
2505
2506 * Merge from debian unstable. Remaining changes:
2507 - debian/{control, rules}: Enable PIE hardening.
2508 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2509 - debian/control: Add bzr tag and point it to our tree
2510 - debain/apache2.py, debian/apache2.2-common.isntall: Add apport hook.
2511 - debian/control, debian/ask-for-passphrase, debian/config-dir/mods-available/ssl.conf:
2512 Plymouth aware passphrase dialog program ask-for-passphrase.
2513
2514 -- Chuck Short <zulcss@ubuntu.com> Sun, 02 Jan 2011 06:05:51 +0000
2515
1483apache2 (2.2.16-6) unstable; urgency=low2516apache2 (2.2.16-6) unstable; urgency=low
14842517
1485 * Also add $named to the secondary-init-script example.2518 * Also add $named to the secondary-init-script example.
@@ -1495,6 +2528,30 @@ apache2 (2.2.16-5) unstable; urgency=medium
14952528
1496 -- Stefan Fritsch <sf@debian.org> Fri, 31 Dec 2010 01:22:19 +01002529 -- Stefan Fritsch <sf@debian.org> Fri, 31 Dec 2010 01:22:19 +0100
14972530
2531apache2 (2.2.16-4ubuntu2) natty; urgency=low
2532
2533 [Clint Byrum]
2534 * Adding plymouth aware passphrase dialog program ask-for-passphrase.
2535 (LP: #582963)
2536 + debian/control: apache2.2-common depends on bash for ask-for-passphrase
2537 + debian/config-dir/mods-available/ssl.conf:
2538 - SSLPassPhraseDialog now uses exec:/usr/share/apache2/ask-for-passhrase
2539
2540 [Chuck Short]
2541 * Add apport hook. (LP: #609177)
2542 + debian/apache2.py, debian/apache2.2-common.install
2543
2544 -- Chuck Short <zulcss@ubuntu.com> Mon, 22 Nov 2010 09:43:43 -0500
2545
2546apache2 (2.2.16-4ubuntu1) natty; urgency=low
2547
2548 * Merge from debian unstable. Remaining changes:
2549 - debian/{control, rules}: Enable PIE hardening.
2550 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2551 - debian/control: Add bzr tag and point it to our tree
2552
2553 -- Chuck Short <zulcss@ubuntu.com> Mon, 22 Nov 2010 09:43:41 -0500
2554
1498apache2 (2.2.16-4) unstable; urgency=medium2555apache2 (2.2.16-4) unstable; urgency=medium
14992556
1500 * Increase the mod_reqtimeout default timeouts to avoid potential problems2557 * Increase the mod_reqtimeout default timeouts to avoid potential problems
@@ -1505,6 +2562,15 @@ apache2 (2.2.16-4) unstable; urgency=medium
15052562
1506 -- Stefan Fritsch <sf@debian.org> Sun, 14 Nov 2010 19:05:55 +01002563 -- Stefan Fritsch <sf@debian.org> Sun, 14 Nov 2010 19:05:55 +0100
15072564
2565apache2 (2.2.16-3ubuntu1) natty; urgency=low
2566
2567 * Merge from debian unstable. Remaining changes:
2568 - debian/{control, rules}: Enable PIE hardening.
2569 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2570 - debian/control: Add bzr tag and point it to our tree.
2571
2572 -- Chuck Short <zulcss@ubuntu.com> Tue, 12 Oct 2010 11:54:48 +0100
2573
1508apache2 (2.2.16-3) unstable; urgency=high2574apache2 (2.2.16-3) unstable; urgency=high
15092575
1510 * CVE-2010-1623: mod_reqtimeout: Fix potential DoS by high memory usage.2576 * CVE-2010-1623: mod_reqtimeout: Fix potential DoS by high memory usage.
@@ -1527,6 +2593,30 @@ apache2 (2.2.16-2) unstable; urgency=low
15272593
1528 -- Stefan Fritsch <sf@debian.org> Sun, 29 Aug 2010 15:29:21 +02002594 -- Stefan Fritsch <sf@debian.org> Sun, 29 Aug 2010 15:29:21 +0200
15292595
2596apache2 (2.2.16-1ubuntu3) maverick; urgency=low
2597
2598 * Revert "stty sane" to unbreak apache starting, this will have to be
2599 fixed a different way. (LP: #626723)
2600
2601 -- Chuck Short <zulcss@ubuntu.com> Wed, 08 Sep 2010 08:33:17 -0400
2602
2603apache2 (2.2.16-1ubuntu2) maverick; urgency=low
2604
2605 * debian/apache2.2-common.apache2.init: Add stty sane so that users will get a
2606 password prompt when using apache-ssl. (LP: #582963)
2607
2608 -- Chuck Short <zulcss@ubuntu.com> Wed, 25 Aug 2010 09:25:05 -0400
2609
2610apache2 (2.2.16-1ubuntu1) maverick; urgency=low
2611
2612 * Merge from debian unstable. Remaining changes:
2613 - debian/{control, rules}: Enable PIE hardening.
2614 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2615 - debian/control: Add bzr tag and point it to our tree.
2616 - debian/apache2-2.common.apache2.init: Add graceful restart (LP: #456381)
2617
2618 -- Chuck Short <zulcss@ubuntu.com> Mon, 26 Jul 2010 20:21:37 +0100
2619
1530apache2 (2.2.16-1) unstable; urgency=medium2620apache2 (2.2.16-1) unstable; urgency=medium
15312621
1532 * Urgency medium for security fix.2622 * Urgency medium for security fix.
@@ -1559,6 +2649,24 @@ apache2 (2.2.15-6) unstable; urgency=low
15592649
1560 -- Stefan Fritsch <sf@debian.org> Fri, 16 Jul 2010 23:41:08 +02002650 -- Stefan Fritsch <sf@debian.org> Fri, 16 Jul 2010 23:41:08 +0200
15612651
2652apache2 (2.2.15-5ubuntu1) maverick; urgency=low
2653
2654 * Merge from debian unstable. Remaining changes:
2655 - debian/{control, rules}: Enable PIE hardening.
2656 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2657 - debian/control: Add bzr tag and point it to our tree.
2658 - debian/apache2-2.common.apache2.init: Add graceful restart (LP: #456381)
2659 + Dropped:
2660 - debian/patches/206-fix-potential-memory-leaks.dpatch: No longer needed.
2661 - debian/patches/206-report-max-client-mpm-worker.dpatch: No longer needed.
2662 - debian/config-dir/apache2.conf: Merged back from debian.
2663 - mod-reqtimeout functionality: Merge back from debian.
2664 - debian/patches/204_CVE-2010-0408.dpatch: No longer needed.
2665 - debian/patches/205_CVE-2010-0434.dpatch: No longer needed.
2666 - debian/patches/203_fix-ab-segfault.dpatch: No longer needed.
2667
2668 -- Chuck Short <zulcss@ubuntu.com> Wed, 05 May 2010 01:28:04 +0100
2669
1562apache2 (2.2.15-5) unstable; urgency=low2670apache2 (2.2.15-5) unstable; urgency=low
15632671
1564 * Conflict with apache package as we now include apachectl. Closes: #5790652672 * Conflict with apache package as we now include apachectl. Closes: #579065
@@ -1679,6 +2787,80 @@ apache2 (2.2.14-6) unstable; urgency=low
16792787
1680 -- Stefan Fritsch <sf@debian.org> Sun, 07 Feb 2010 17:29:45 +01002788 -- Stefan Fritsch <sf@debian.org> Sun, 07 Feb 2010 17:29:45 +0100
16812789
2790apache2 (2.2.14-5ubuntu8) lucid; urgency=low
2791
2792 * debian/patches/210-backport-mod-reqtimeout-ftbfs.dpatch: Add missing mod_reqtime.so
2793 (LP: #562370)
2794
2795 -- Chuck Short <zulcss@ubuntu.com> Tue, 13 Apr 2010 15:09:57 -0400
2796
2797apache2 (2.2.14-5ubuntu7) lucid; urgency=low
2798
2799 * debian/patches/206-fix-potential-memory-leaks.dpatch: Fix potential memory
2800 leaks by making sure to not destroy bucket brigades that have been created
2801 by earlier filters. Backported from 2.2.15.
2802 * debian/patches/206-report-max-client-mpm-worker.dpatch: Don't report server
2803 has reached MaxClients until it has. Backported from 2.2.15
2804 * debian/config-dir/apache2.conf: Make the Files ~ "^\.ht" block in apache2.conf
2805 more secure by adding Satisfy all. (Debian bug: #572075)
2806 * debian/rules, debian/patches/209-backport-mod-reqtimeout.dpatch,
2807 debian/config2-dir/mods-available/reqtimeout.load,
2808 debian/config2-dir/mods-available/reqtimeout.conf debian/NEWS : Backport the
2809 mod-reqtimeout module from 2.2.15, this will mitigate apache slowloris
2810 bug in apache. Enable it by default. (LP: #392759)
2811
2812 -- Chuck Short <zulcss@ubuntu.com> Mon, 05 Apr 2010 09:53:35 -0400
2813
2814apache2 (2.2.14-5ubuntu6) lucid; urgency=low
2815
2816 * debian/apache2.2-common.apache2.init: Fix thinko. (LP: #551681)
2817
2818 -- Chuck Short <zulcss@ubuntu.com> Tue, 30 Mar 2010 09:41:11 -0400
2819
2820apache2 (2.2.14-5ubuntu5) lucid; urgency=low
2821
2822 * Revert 99-fix-mod-dav-permissions.dpatch
2823
2824 -- Chuck Short <zulcss@ubuntu.com> Tue, 30 Mar 2010 07:55:46 -0400
2825
2826apache2 (2.2.14-5ubuntu4) lucid; urgency=low
2827
2828 * debian/patches/99-fix-mod-dav-permissions.dpatch: Fix permisisons when
2829 downloading files from webdav (LP: #540747)
2830 * debian/apache2.2-common.apache2.init: Add graceful restart (LP: #456381)
2831
2832 -- Chuck Short <zulcss@ubuntu.com> Mon, 29 Mar 2010 13:37:39 -0400
2833
2834apache2 (2.2.14-5ubuntu3) lucid; urgency=low
2835
2836 * SECURITY UPDATE: denial of service via crafted request in mod_proxy_ajp
2837 - debian/patches/204_CVE-2010-0408.dpatch: return the right error code
2838 in modules/proxy/mod_proxy_ajp.c.
2839 - CVE-2010-0408
2840 * SECURITY UPDATE: information disclosure via improper handling of
2841 headers in subrequests
2842 - debian/patches/205_CVE-2010-0434.dpatch: use a copy of r->headers_in
2843 in server/protocol.c.
2844 - CVE-2010-0434
2845
2846 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 10 Mar 2010 14:48:48 -0500
2847
2848apache2 (2.2.14-5ubuntu2) lucid; urgency=low
2849
2850 * debian/patches/203_fix-ab-segfault.dpatch: Fix segfaulting ab when using really
2851 wacky options. (LP: #450501)
2852
2853 -- Chuck Short <zulcss@ubuntu.com> Mon, 08 Mar 2010 14:53:17 -0500
2854
2855apache2 (2.2.14-5ubuntu1) lucid; urgency=low
2856
2857 * Merge from debian testing. Remaining changes: LP: #506862
2858 - debian/{control, rules}: Enable PIE hardening.
2859 - debian/{control, rules, apache2.2-common.ufw.profile}: Add ufw profiles.
2860 - debian/control: Add bzr tag and point it to our tree.
2861
2862 -- Bhavani Shankar <right2bhavi@gmail.com> Wed, 13 Jan 2010 14:28:41 +0530
2863
1682apache2 (2.2.14-5) unstable; urgency=low2864apache2 (2.2.14-5) unstable; urgency=low
16832865
1684 * Security: Further mitigation for the TLS renegotation attack2866 * Security: Further mitigation for the TLS renegotation attack
@@ -1702,6 +2884,15 @@ apache2 (2.2.14-5) unstable; urgency=low
17022884
1703 -- Stefan Fritsch <sf@debian.org> Sat, 02 Jan 2010 22:44:15 +01002885 -- Stefan Fritsch <sf@debian.org> Sat, 02 Jan 2010 22:44:15 +0100
17042886
2887apache2 (2.2.14-4ubuntu1) lucid; urgency=low
2888
2889 * Resynchronzie with Debian, remaining changes are:
2890 - debian/{control, rules}: Enable PIE hardening.
2891 - debian/{control, rules, pache2.2-common.ufw.profile}: Add ufw profiles.
2892 - debian/control: Add bzr tag and point it to our tree.
2893
2894 -- Chuck Short <zulcss@ubuntu.com> Wed, 23 Dec 2009 14:44:51 -0500
2895
1705apache2 (2.2.14-4) unstable; urgency=low2896apache2 (2.2.14-4) unstable; urgency=low
17062897
1707 * Disable localized error pages again by default because they break2898 * Disable localized error pages again by default because they break
@@ -1752,6 +2943,17 @@ apache2 (2.2.14-2) unstable; urgency=medium
17522943
1753 -- Stefan Fritsch <sf@debian.org> Sat, 07 Nov 2009 14:37:37 +01002944 -- Stefan Fritsch <sf@debian.org> Sat, 07 Nov 2009 14:37:37 +0100
17542945
2946apache2 (2.2.14-1ubuntu1) lucid; urgency=low
2947
2948 * Merge from debian testing, remaining changes:
2949 - debian/{control, rules}: Enable PIE hardening.
2950 - debian/{control, rules, pache2.2-common.ufw.profile}: Add ufw profiles.
2951 - debian/conrol: Add bzr tag and point it to our tree.
2952 - Dropped debian/patches/203_fix_legacy_ap_rputs_segfaults.dpatch:
2953 Already applied upstream.
2954
2955 -- Chuck Short <zulcss@ubuntu.com> Fri, 06 Nov 2009 00:29:03 +0000
2956
1755apache2 (2.2.14-1) unstable; urgency=low2957apache2 (2.2.14-1) unstable; urgency=low
17562958
1757 * New upstream version:2959 * New upstream version:
@@ -1786,6 +2988,24 @@ apache2 (2.2.13-1) unstable; urgency=low
17862988
1787 -- Stefan Fritsch <sf@debian.org> Mon, 31 Aug 2009 20:28:56 +02002989 -- Stefan Fritsch <sf@debian.org> Mon, 31 Aug 2009 20:28:56 +0200
17882990
2991apache2 (2.2.12-1ubuntu2) karmic; urgency=low
2992
2993 * debian/patches/203_fix_legacy_ap_rputs_segfaults.dpatch:
2994 - Fix potential segfaults with the use of the legacy ap_rputs() etc
2995 interfaces, in cases where an output filter fails. This happens
2996 frequently after CVE-2009-1891 got fixed. (LP: #409987)
2997
2998 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Mon, 17 Aug 2009 15:38:47 -0400
2999
3000apache2 (2.2.12-1ubuntu1) karmic; urgency=low
3001
3002 * Merge from debian unstable, remaining changes:
3003 - debian/{control,rules}: enable PIE hardening.
3004 - debian/{control, rules, apache2.2-common.ufw.profile}: add ufw profiles.
3005 - Dropped debian/patches/203_fix-ssl-timeftm-ignored.dpatch.
3006
3007 -- Chuck Short <zulcss@ubuntu.com> Tue, 04 Aug 2009 20:04:24 +0100
3008
1789apache2 (2.2.12-1) unstable; urgency=low3009apache2 (2.2.12-1) unstable; urgency=low
17903010
1791 * New upstream release:3011 * New upstream release:
@@ -1833,6 +3053,16 @@ apache2 (2.2.12-1) unstable; urgency=low
18333053
1834 -- Stefan Fritsch <sf@debian.org> Tue, 04 Aug 2009 11:02:34 +02003054 -- Stefan Fritsch <sf@debian.org> Tue, 04 Aug 2009 11:02:34 +0200
18353055
3056apache2 (2.2.11-7ubuntu1) karmic; urgency=low
3057
3058 * Merge from debian unstable, remaining changes: LP: #398130
3059 - debian/patches/203_fix-ssl-timeftm-ignored.dpatch:
3060 Fix timefmt is ignored when XBitHack is on. (LP: #258914)
3061 - debian/{control,rules}: enable PIE hardening.
3062 - debian/{control, rules, apache2.2-common.ufw.profile}: add ufw profiles.
3063
3064 -- Bhavani Shankar <right2bhavi@gmail.com> Sat, 11 Jul 2009 16:34:32 +0530
3065
1836apache2 (2.2.11-7) unstable; urgency=low3066apache2 (2.2.11-7) unstable; urgency=low
18373067
1838 * Security fixes:3068 * Security fixes:
@@ -1847,6 +3077,16 @@ apache2 (2.2.11-7) unstable; urgency=low
18473077
1848 -- Stefan Fritsch <sf@debian.org> Fri, 10 Jul 2009 22:42:57 +02003078 -- Stefan Fritsch <sf@debian.org> Fri, 10 Jul 2009 22:42:57 +0200
18493079
3080apache2 (2.2.11-6ubuntu1) karmic; urgency=low
3081
3082 * Merge from debian unstable, remaining changes:
3083 - debian/patches/203_fix-ssl-timeftm-ignored.dpatch:
3084 Fix timefmt is ignored when XBitHack is on. (LP: #258914)
3085 - debian/{control,rules}: enable PIE hardening.
3086 - debian/{control, rules, apache2.2-common.ufw.profile}: add ufw profiles.
3087
3088 -- Chuck Short <zulcss@ubuntu.com> Tue, 09 Jun 2009 01:01:23 +0100
3089
1850apache2 (2.2.11-6) unstable; urgency=high3090apache2 (2.2.11-6) unstable; urgency=high
18513091
1852 * CVE-2009-1195: mod_include allowed to bypass IncludesNoExec for Server3092 * CVE-2009-1195: mod_include allowed to bypass IncludesNoExec for Server
@@ -1855,6 +3095,16 @@ apache2 (2.2.11-6) unstable; urgency=high
18553095
1856 -- Stefan Fritsch <sf@debian.org> Mon, 08 Jun 2009 19:22:58 +02003096 -- Stefan Fritsch <sf@debian.org> Mon, 08 Jun 2009 19:22:58 +0200
18573097
3098apache2 (2.2.11-5ubuntu1) karmic; urgency=low
3099
3100 * Merge from debian unstable, remaining changes:
3101 - debian/patches/203_fix-ssi-timeftm-ignored.dpatch:
3102 Fix timefmt is ignored when XBitHack is on. (LP: #258914)
3103 - debian/{control,rules}: enable PIE hardening.
3104 - debian/{control, rules, apache2.2-common.ufw.profile}: add ufw profiles.
3105
3106 -- Andrew Mitchell <ajmitch@ubuntu.com> Wed, 03 Jun 2009 14:10:54 +1200
3107
1858apache2 (2.2.11-5) unstable; urgency=low3108apache2 (2.2.11-5) unstable; urgency=low
18593109
1860 * Move all binaries into a new package apache2.2-bin and make3110 * Move all binaries into a new package apache2.2-bin and make
@@ -1903,6 +3153,16 @@ apache2 (2.2.11-4) unstable; urgency=low
19033153
1904 -- Stefan Fritsch <sf@debian.org> Tue, 19 May 2009 22:55:27 +02003154 -- Stefan Fritsch <sf@debian.org> Tue, 19 May 2009 22:55:27 +0200
19053155
3156apache2 (2.2.11-3ubuntu1) karmic; urgency=low
3157
3158 * Merge from debian unstable, remaining changes:
3159 - debian/patches/203_fix-ssi-timeftm-ignored.dpatch:
3160 Fix timefmt is ignored when XBitHack is on. (LP: #258914)
3161 - debian/{control,rules}: enable PIE hardening.
3162 - debian/{control, rules, apache2.2-common.ufw.profile}: add ufw profiles.
3163
3164 -- Andrew Mitchell <ajmitch@ubuntu.com> Tue, 12 May 2009 16:15:34 +1200
3165
1906apache2 (2.2.11-3) unstable; urgency=low3166apache2 (2.2.11-3) unstable; urgency=low
19073167
1908 * Rebuild against apr-util 1.3, to fix undefined symbol errors in mod_ldap3168 * Rebuild against apr-util 1.3, to fix undefined symbol errors in mod_ldap
@@ -1911,6 +3171,21 @@ apache2 (2.2.11-3) unstable; urgency=low
19113171
1912 -- Stefan Fritsch <sf@debian.org> Tue, 31 Mar 2009 21:07:26 +02003172 -- Stefan Fritsch <sf@debian.org> Tue, 31 Mar 2009 21:07:26 +0200
19133173
3174apache2 (2.2.11-2ubuntu2) jaunty; urgency=low
3175
3176 * debian/patches/203_fix-ssi-timeftm-ignored.dpatch:
3177 Fix timefmt is ignored when XBitHack is on. (LP: #258914)
3178
3179 -- Chuck Short <zulcss@ubuntu.com> Wed, 01 Apr 2009 11:39:17 -0400
3180
3181apache2 (2.2.11-2ubuntu1) jaunty; urgency=low
3182
3183 * Merge from debian unstable, remaining changes:
3184 - debian/{contro,rules}: enable PIE hardening.
3185 - debian/{control, rules, apache2.2-common.ufw.profile}: add ufw profiles.
3186
3187 -- Chuck Short <zulcss@ubuntu.com> Sat, 17 Jan 2009 00:02:55 +0000
3188
1914apache2 (2.2.11-2) unstable; urgency=low3189apache2 (2.2.11-2) unstable; urgency=low
19153190
1916 * Report an error instead instead of segfaulting when apr_pollset_create3191 * Report an error instead instead of segfaulting when apr_pollset_create
@@ -1920,6 +3195,14 @@ apache2 (2.2.11-2) unstable; urgency=low
19203195
1921 -- Stefan Fritsch <sf@debian.org> Fri, 16 Jan 2009 19:01:59 +01003196 -- Stefan Fritsch <sf@debian.org> Fri, 16 Jan 2009 19:01:59 +0100
19223197
3198apache2 (2.2.11-1ubuntu1) jaunty; urgency=low
3199
3200 * Merge from debian unstable, remaining changes:
3201 - debian/{control, rules}: enable PIE hardening.
3202 - debian/{control, rules, apache2.2-common.ufw.profile}: add ufw profiles.
3203
3204 -- Chuck Short <zulcss@ubuntu.com> Mon, 15 Dec 2008 00:06:50 +0000
3205
1923apache2 (2.2.11-1) unstable; urgency=low3206apache2 (2.2.11-1) unstable; urgency=low
19243207
1925 [Thom May]3208 [Thom May]
@@ -1934,6 +3217,14 @@ apache2 (2.2.11-1) unstable; urgency=low
19343217
1935 -- Stefan Fritsch <sf@debian.org> Sun, 14 Dec 2008 09:34:24 +01003218 -- Stefan Fritsch <sf@debian.org> Sun, 14 Dec 2008 09:34:24 +0100
19363219
3220apache2 (2.2.9-11ubuntu1) jaunty; urgency=low
3221
3222 * Merge from debian unstable, remaining changes: (LP: #303375)
3223 - debian/{control, rules}: enable PIE hardening.
3224 - debian/{control, rules, apache2.2-common.ufw.profile}: add ufw profiles.
3225
3226 -- Bhavani Shankar <right2bhavi@gmail.com> Sat, 29 Nov 2008 14:02:31 +0530
3227
1937apache2 (2.2.9-11) unstable; urgency=low3228apache2 (2.2.9-11) unstable; urgency=low
19383229
1939 * Regression fix from upstream svn for mod_proxy:3230 * Regression fix from upstream svn for mod_proxy:
@@ -1948,6 +3239,14 @@ apache2 (2.2.9-11) unstable; urgency=low
19483239
1949 -- Stefan Fritsch <sf@debian.org> Wed, 26 Nov 2008 23:10:22 +01003240 -- Stefan Fritsch <sf@debian.org> Wed, 26 Nov 2008 23:10:22 +0100
19503241
3242apache2 (2.2.9-10ubuntu1) jaunty; urgency=low
3243
3244 * Merge from debian unstable, remaining changes:
3245 - debian/{control, rules}: enable PIE hardening.
3246 - debian/{control, rules, apache2.2-common.ufw.profile}: add ufw profiles.
3247
3248 -- Chuck Short <zulcss@ubuntu.com> Wed, 05 Nov 2008 02:23:18 -0400
3249
1951apache2 (2.2.9-10) unstable; urgency=low3250apache2 (2.2.9-10) unstable; urgency=low
19523251
1953 * Regression fix from upstream svn for mod_proxy_http:3252 * Regression fix from upstream svn for mod_proxy_http:
@@ -1978,6 +3277,27 @@ apache2 (2.2.9-8) unstable; urgency=low
19783277
1979 -- Stefan Fritsch <sf@debian.org> Thu, 11 Sep 2008 09:17:33 +02003278 -- Stefan Fritsch <sf@debian.org> Thu, 11 Sep 2008 09:17:33 +0200
19803279
3280apache2 (2.2.9-7ubuntu3) intrepid; urgency=low
3281
3282 * Revert logrotate change since it will break it for everyone.
3283
3284 -- Chuck Short <zulcss@ubuntu.com> Fri, 19 Sep 2008 09:32:01 -0400
3285
3286apache2 (2.2.9-7ubuntu2) intrepid; urgency=low
3287
3288 * debian/logrotate: Restart rather than reload for busy websites.
3289 (LP: #270899)
3290
3291 -- Chuck Short <zulcss@ubuntu.com> Thu, 18 Sep 2008 08:42:22 -0400
3292
3293apache2 (2.2.9-7ubuntu1) intrepid; urgency=low
3294
3295 * Merge from debian unstable, remaining changes:
3296 - debian/{control,rules}: enable PIE hardening.
3297 - debian/{control,rules,apache2.2-common.ufw.profile}: add ufw profiles.
3298
3299 -- Kees Cook <kees@ubuntu.com> Thu, 28 Aug 2008 08:10:59 -0700
3300
1981apache2 (2.2.9-7) unstable; urgency=low3301apache2 (2.2.9-7) unstable; urgency=low
19823302
1983 * Fix XSS in mod_proxy_ftp (CVE-2008-2939).3303 * Fix XSS in mod_proxy_ftp (CVE-2008-2939).
@@ -2020,6 +3340,23 @@ apache2 (2.2.9-4) unstable; urgency=low
20203340
2021 -- Stefan Fritsch <sf@debian.org> Sun, 06 Jul 2008 10:38:37 +02003341 -- Stefan Fritsch <sf@debian.org> Sun, 06 Jul 2008 10:38:37 +0200
20223342
3343apache2 (2.2.9-3ubuntu2) intrepid; urgency=low
3344
3345 * add ufw integration (see
3346 https://wiki.ubuntu.com/UbuntuFirewall#Integrating%20UFW%20with%20Packages)
3347 (LP: #261198)
3348 - debian/control: suggest ufw for apache2.2-common
3349 - add apache2.2-common.ufw.profile with 3 profiles and install it to
3350 /etc/ufw/applications.d/apache2.2-common
3351
3352 -- Didier Roche <didrocks@ubuntu-fr.org> Tue, 26 Aug 2008 19:03:42 +0200
3353
3354apache2 (2.2.9-3ubuntu1) intrepid; urgency=low
3355
3356 * debian/{control,rules}: enable PIE hardening
3357
3358 -- Kees Cook <kees@ubuntu.com> Wed, 20 Aug 2008 15:45:00 -0700
3359
2023apache2 (2.2.9-3) unstable; urgency=low3360apache2 (2.2.9-3) unstable; urgency=low
20243361
2025 [ Stefan Fritsch ]3362 [ Stefan Fritsch ]
@@ -4100,3 +5437,4 @@ apache2 (2.0.18-1) unstable; urgency=low
4100 * Initial Release.5437 * Initial Release.
41015438
4102 -- Daniel Stone <daniel@sfarc.net> Wed, 4 Jul 2001 21:29:29 +10005439 -- Daniel Stone <daniel@sfarc.net> Wed, 4 Jul 2001 21:29:29 +1000
5440
diff --git a/debian/control b/debian/control
index a72cfff..e974321 100644
--- a/debian/control
+++ b/debian/control
@@ -1,7 +1,8 @@
1Source: apache21Source: apache2
2Section: httpd2Section: httpd
3Priority: optional3Priority: optional
4Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5XSBC-Original-Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>
5Uploaders: Stefan Fritsch <sf@debian.org>,6Uploaders: Stefan Fritsch <sf@debian.org>,
6 Arno Töll <arno@debian.org>,7 Arno Töll <arno@debian.org>,
7 Ondřej Surý <ondrej@debian.org>8 Ondřej Surý <ondrej@debian.org>
@@ -44,15 +45,12 @@ Provides: httpd,
44Recommends: ssl-cert45Recommends: ssl-cert
45Conflicts: apache2.2-bin,46Conflicts: apache2.2-bin,
46 apache2.2-common47 apache2.2-common
47Breaks: libapache2-mod-md (<< 2.4.33),
48 libapache2-mod-proxy-uwsgi (<< 2.4.33)
49Replaces: apache2.2-bin,48Replaces: apache2.2-bin,
50 apache2.2-common,49 apache2.2-common,
51 libapache2-mod-md (<< 2.4.33),
52 libapache2-mod-proxy-uwsgi (<< 2.4.33)
53Suggests: apache2-doc,50Suggests: apache2-doc,
54 apache2-suexec-pristine | apache2-suexec-custom,51 apache2-suexec-pristine | apache2-suexec-custom,
55 www-browser52 www-browser,
53 ufw
56Description: Apache HTTP Server54Description: Apache HTTP Server
57 The Apache HTTP Server Project's goal is to build a secure, efficient and55 The Apache HTTP Server Project's goal is to build a secure, efficient and
58 extensible HTTP server as standards-compliant open source software. The56 extensible HTTP server as standards-compliant open source software. The
@@ -81,10 +79,6 @@ Depends: ${misc:Depends},
81Provides: ${apache2:API}79Provides: ${apache2:API}
82Breaks: gridsite (<< 3.0.0~20170225gitd51b2fd-1~),80Breaks: gridsite (<< 3.0.0~20170225gitd51b2fd-1~),
83 libapache2-mod-dacs (<= 1.4.38a-2),81 libapache2-mod-dacs (<= 1.4.38a-2),
84 libapache2-mod-md (<< 2.4.33),
85 libapache2-mod-proxy-uwsgi (<< 2.4.33)
86Replaces: libapache2-mod-md (<< 2.4.33),
87 libapache2-mod-proxy-uwsgi (<< 2.4.33)
88Suggests: apache2-doc,82Suggests: apache2-doc,
89 apache2-suexec-pristine | apache2-suexec-custom,83 apache2-suexec-pristine | apache2-suexec-custom,
90 www-browser84 www-browser
@@ -209,20 +203,3 @@ Description: Apache debugging symbols
209 This package includes the debugging symbols. It can be used to debug203 This package includes the debugging symbols. It can be used to debug
210 crashing server instances and modules. See204 crashing server instances and modules. See
211 /usr/share/doc/apache2/README.backtrace for more information.205 /usr/share/doc/apache2/README.backtrace for more information.
212
213Package: libapache2-mod-md
214Architecture: any
215Section: oldlibs
216Depends: ${misc:Depends}, apache2 (= ${binary:Version})
217Description: transitional package
218 This is a transitional package to apache2 for users of libapache2-mod-md.
219 It can be safely removed after the installation is complete.
220
221Package: libapache2-mod-proxy-uwsgi
222Architecture: any
223Section: oldlibs
224Depends: ${misc:Depends}, apache2 (= ${binary:Version})
225Description: transitional package
226 This is a transitional package to apache2 for users of
227 libapache2-mod-proxy-uwsgi.
228 It can be safely removed after the installation is complete.
diff --git a/debian/icons/ubuntu-logo.png b/debian/icons/ubuntu-logo.png
229new file mode 100644206new file mode 100644
index 0000000..4db2fa1
230Binary files /dev/null and b/debian/icons/ubuntu-logo.png differ207Binary files /dev/null and b/debian/icons/ubuntu-logo.png differ
diff --git a/debian/index.html b/debian/index.html
index 766401d..96ed444 100644
--- a/debian/index.html
+++ b/debian/index.html
@@ -1,9 +1,14 @@
11
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">3<html xmlns="http://www.w3.org/1999/xhtml">
4 <!--
5 Modified from the Debian original for Ubuntu
6 Last updated: 2016-11-16
7 See: https://launchpad.net/bugs/1288690
8 -->
4 <head>9 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />10 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <title>Apache2 Debian Default Page: It works</title>11 <title>Apache2 Ubuntu Default Page: It works</title>
7 <style type="text/css" media="screen">12 <style type="text/css" media="screen">
8 * {13 * {
9 margin: 0px 0px 0px 0px;14 margin: 0px 0px 0px 0px;
@@ -188,9 +193,9 @@
188 <body>193 <body>
189 <div class="main_page">194 <div class="main_page">
190 <div class="page_header floating_element">195 <div class="page_header floating_element">
191 <img src="/icons/openlogo-75.png" alt="Debian Logo" class="floating_element"/>196 <img src="/icons/ubuntu-logo.png" alt="Ubuntu Logo" class="floating_element"/>
192 <span class="floating_element">197 <span class="floating_element">
193 Apache2 Debian Default Page198 Apache2 Ubuntu Default Page
194 </span>199 </span>
195 </div>200 </div>
196<!-- <div class="table_of_contents floating_element">201<!-- <div class="table_of_contents floating_element">
@@ -221,7 +226,9 @@
221 <div class="content_section_text">226 <div class="content_section_text">
222 <p>227 <p>
223 This is the default welcome page used to test the correct 228 This is the default welcome page used to test the correct
224 operation of the Apache2 server after installation on Debian systems.229 operation of the Apache2 server after installation on Ubuntu systems.
230 It is based on the equivalent page on Debian, from which the Ubuntu Apache
231 packaging is derived.
225 If you can read this page, it means that the Apache HTTP server installed at232 If you can read this page, it means that the Apache HTTP server installed at
226 this site is working properly. You should <b>replace this file</b> (located at233 this site is working properly. You should <b>replace this file</b> (located at
227 <tt>/var/www/html/index.html</tt>) before continuing to operate your HTTP server.234 <tt>/var/www/html/index.html</tt>) before continuing to operate your HTTP server.
@@ -242,9 +249,9 @@
242 </div>249 </div>
243 <div class="content_section_text">250 <div class="content_section_text">
244 <p>251 <p>
245 Debian's Apache2 default configuration is different from the252 Ubuntu's Apache2 default configuration is different from the
246 upstream default configuration, and split into several files optimized for253 upstream default configuration, and split into several files optimized for
247 interaction with Debian tools. The configuration system is254 interaction with Ubuntu tools. The configuration system is
248 <b>fully documented in255 <b>fully documented in
249 /usr/share/doc/apache2/README.Debian.gz</b>. Refer to this for the full256 /usr/share/doc/apache2/README.Debian.gz</b>. Refer to this for the full
250 documentation. Documentation for the web server itself can be257 documentation. Documentation for the web server itself can be
@@ -253,7 +260,7 @@
253260
254 </p>261 </p>
255 <p>262 <p>
256 The configuration layout for an Apache2 web server installation on Debian systems is as follows:263 The configuration layout for an Apache2 web server installation on Ubuntu systems is as follows:
257 </p>264 </p>
258 <pre>265 <pre>
259/etc/apache2/266/etc/apache2/
@@ -324,7 +331,7 @@
324331
325 <div class="content_section_text">332 <div class="content_section_text">
326 <p>333 <p>
327 By default, Debian does not allow access through the web browser to334 By default, Ubuntu does not allow access through the web browser to
328 <em>any</em> file apart of those located in <tt>/var/www</tt>,335 <em>any</em> file apart of those located in <tt>/var/www</tt>,
329 <a href="http://httpd.apache.org/docs/2.4/mod/mod_userdir.html" rel="nofollow">public_html</a>336 <a href="http://httpd.apache.org/docs/2.4/mod/mod_userdir.html" rel="nofollow">public_html</a>
330 directories (when enabled) and <tt>/usr/share</tt> (for web337 directories (when enabled) and <tt>/usr/share</tt> (for web
@@ -333,7 +340,7 @@
333 document root directory in <tt>/etc/apache2/apache2.conf</tt>.340 document root directory in <tt>/etc/apache2/apache2.conf</tt>.
334 </p>341 </p>
335 <p>342 <p>
336 The default Debian document root is <tt>/var/www/html</tt>. You343 The default Ubuntu document root is <tt>/var/www/html</tt>. You
337 can make your own virtual hosts under /var/www. This is different344 can make your own virtual hosts under /var/www. This is different
338 to previous releases which provides better security out of the box.345 to previous releases which provides better security out of the box.
339 </p>346 </p>
@@ -345,9 +352,9 @@
345 </div>352 </div>
346 <div class="content_section_text">353 <div class="content_section_text">
347 <p>354 <p>
348 Please use the <tt>reportbug</tt> tool to report bugs in the355 Please use the <tt>ubuntu-bug</tt> tool to report bugs in the
349 Apache2 package with Debian. However, check <a356 Apache2 package with Ubuntu. However, check <a
350 href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=apache2;repeatmerged=0"357 href="https://bugs.launchpad.net/ubuntu/+source/apache2"
351 rel="nofollow">existing bug reports</a> before reporting a new bug.358 rel="nofollow">existing bug reports</a> before reporting a new bug.
352 </p>359 </p>
353 <p>360 <p>
diff --git a/debian/patches/086_svn_cross_compiles b/debian/patches/086_svn_cross_compiles
354new file mode 100644361new file mode 100644
index 0000000..b237908
--- /dev/null
+++ b/debian/patches/086_svn_cross_compiles
@@ -0,0 +1,118 @@
1Description: Pull upstream fixes for autotools for cross-compiling
2Author: Adam Conrad <adconrad@ubuntu.com>
3Origin: upstream, http://svn.eu.apache.org/viewvc?view=revision&revision=1328445
4Origin: upstream, http://svn.eu.apache.org/viewvc?view=revision&revision=1327907
5Origin: upstream, http://svn.eu.apache.org/viewvc?view=revision&revision=1328390
6Origin: upstream, http://svn.eu.apache.org/viewvc?view=revision&revision=1328714
7Forwarded: not-needed
8
9Index: apache2-2.4.29/acinclude.m4
10===================================================================
11--- apache2-2.4.29.orig/acinclude.m4 2017-11-10 10:56:51.488205250 -0500
12+++ apache2-2.4.29/acinclude.m4 2017-11-10 10:56:51.484205199 -0500
13@@ -55,6 +55,8 @@ AC_DEFUN([APACHE_GEN_CONFIG_VARS],[
14 APACHE_SUBST(CPPFLAGS)
15 APACHE_SUBST(CFLAGS)
16 APACHE_SUBST(CXXFLAGS)
17+ APACHE_SUBST(CC_FOR_BUILD)
18+ APACHE_SUBST(CFLAGS_FOR_BUILD)
19 APACHE_SUBST(LTFLAGS)
20 APACHE_SUBST(LDFLAGS)
21 APACHE_SUBST(LT_LDFLAGS)
22@@ -697,7 +699,7 @@ int main(void)
23 {
24 return sizeof(void *) < sizeof(long);
25 }], [ap_cv_void_ptr_lt_long=no], [ap_cv_void_ptr_lt_long=yes],
26- [ap_cv_void_ptr_lt_long=yes])])
27+ [ap_cv_void_ptr_lt_long="cross compile - not checked"])])
28
29 if test "$ap_cv_void_ptr_lt_long" = "yes"; then
30 AC_MSG_ERROR([Size of "void *" is less than size of "long"])
31Index: apache2-2.4.29/configure
32===================================================================
33--- apache2-2.4.29.orig/configure 2017-11-10 10:56:51.488205250 -0500
34+++ apache2-2.4.29/configure 2017-11-10 10:56:51.488205250 -0500
35@@ -662,6 +662,8 @@ HTTPD_LDFLAGS
36 SH_LDFLAGS
37 LT_LDFLAGS
38 LTFLAGS
39+CFLAGS_FOR_BUILD
40+CC_FOR_BUILD
41 CXXFLAGS
42 CXX
43 other_targets
44@@ -6071,6 +6073,12 @@ fi
45
46
47
48+if test "x${build_alias}" != "x${host_alias}"; then
49+ if test "x${CC_FOR_BUILD}" = "x"; then
50+ CC_FOR_BUILD=cc
51+ fi
52+fi
53+
54 if test "x${cache_file}" = "x/dev/null"; then
55 # Likewise, ensure that CC and CPP are passed through to the pcre
56 # configure script iff caching is disabled (the autoconf 2.5x default).
57@@ -7698,7 +7706,7 @@ if ${ap_cv_void_ptr_lt_long+:} false; th
58 $as_echo_n "(cached) " >&6
59 else
60 if test "$cross_compiling" = yes; then :
61- ap_cv_void_ptr_lt_long=yes
62+ ap_cv_void_ptr_lt_long="cross compile - not checked"
63 else
64 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
65 /* end confdefs.h. */
66@@ -37522,6 +37530,14 @@ $as_echo "$as_me: " >&6;}
67
68
69
70+ APACHE_VAR_SUBST="$APACHE_VAR_SUBST CC_FOR_BUILD"
71+
72+
73+
74+ APACHE_VAR_SUBST="$APACHE_VAR_SUBST CFLAGS_FOR_BUILD"
75+
76+
77+
78 APACHE_VAR_SUBST="$APACHE_VAR_SUBST LTFLAGS"
79
80
81Index: apache2-2.4.29/configure.in
82===================================================================
83--- apache2-2.4.29.orig/configure.in 2017-11-10 10:56:51.488205250 -0500
84+++ apache2-2.4.29/configure.in 2017-11-10 10:56:51.488205250 -0500
85@@ -206,6 +206,14 @@ AC_PROG_CPP
86 dnl Try to get c99 support for variadic macros
87 ifdef([AC_PROG_CC_C99], [AC_PROG_CC_C99])
88
89+dnl In case of cross compilation we set CC_FOR_BUILD to cc unless
90+dnl we got already CC_FOR_BUILD from environment.
91+if test "x${build_alias}" != "x${host_alias}"; then
92+ if test "x${CC_FOR_BUILD}" = "x"; then
93+ CC_FOR_BUILD=cc
94+ fi
95+fi
96+
97 if test "x${cache_file}" = "x/dev/null"; then
98 # Likewise, ensure that CC and CPP are passed through to the pcre
99 # configure script iff caching is disabled (the autoconf 2.5x default).
100Index: apache2-2.4.29/server/Makefile.in
101===================================================================
102--- apache2-2.4.29.orig/server/Makefile.in 2017-11-10 10:56:51.488205250 -0500
103+++ apache2-2.4.29/server/Makefile.in 2017-11-10 10:56:51.488205250 -0500
104@@ -24,9 +24,14 @@ TARGETS = delete-exports $(LTLIBRARY_NAM
105 include $(top_builddir)/build/rules.mk
106 include $(top_srcdir)/build/library.mk
107
108+ifdef CC_FOR_BUILD
109+gen_test_char: gen_test_char.c
110+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $<
111+else
112 gen_test_char_OBJECTS = gen_test_char.lo
113 gen_test_char: $(gen_test_char_OBJECTS)
114 $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
115+endif
116
117 test_char.h: gen_test_char
118 ./gen_test_char > test_char.h
diff --git a/debian/patches/series b/debian/patches/series
index b4e63de..555d3b8 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,3 +9,6 @@ reproducible_builds.diff
9#suexec-custom.patch9#suexec-custom.patch
1010
11mod_http2_mem_usage_32bit.diff11mod_http2_mem_usage_32bit.diff
12
13# Patches added by Ubuntu
14086_svn_cross_compiles
diff --git a/debian/rules b/debian/rules
index e2d693c..7ca974b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -113,6 +113,8 @@ configure-stamp: prebuild-checks-stamp support/suexec-custom.c
113 --with-apr=/usr/bin/apr-1-config --with-apr-util=/usr/bin/apu-1-config \113 --with-apr=/usr/bin/apr-1-config --with-apr-util=/usr/bin/apu-1-config \
114 --with-pcre=yes \114 --with-pcre=yes \
115 --enable-pie \115 --enable-pie \
116 --disable-md \
117 --disable-proxy-uwsgi \
116 --enable-mpms-shared=all \118 --enable-mpms-shared=all \
117 --enable-mods-shared="all brotli cgi ident authnz_fcgi imagemap cern_meta proxy_fdpass proxy_http2 bucketeer case_filter case_filter_in" \119 --enable-mods-shared="all brotli cgi ident authnz_fcgi imagemap cern_meta proxy_fdpass proxy_http2 bucketeer case_filter case_filter_in" \
118 --enable-mods-static="unixd logio watchdog version" \120 --enable-mods-static="unixd logio watchdog version" \
@@ -177,7 +179,7 @@ override_dh_installdocs-indep:
177 dh_installdocs -i179 dh_installdocs -i
178180
179override_dh_installdocs-arch:181override_dh_installdocs-arch:
180 dh_installdocs --link-doc=apache2 -papache2 -papache2-dbg -plibapache2-mod-md -plibapache2-mod-proxy-uwsgi182 dh_installdocs --link-doc=apache2 -papache2 -papache2-dbg
181 dh_installdocs --link-doc=apache2-dev -papache2-ssl-dev183 dh_installdocs --link-doc=apache2-dev -papache2-ssl-dev
182 dh_installdocs -a184 dh_installdocs -a
183185
diff --git a/debian/source/include-binaries b/debian/source/include-binaries
index b6a30fe..c9128c9 100644
--- a/debian/source/include-binaries
+++ b/debian/source/include-binaries
@@ -16,6 +16,7 @@ debian/icons/odf6odp-20x22.png
16debian/icons/odf6otp-20x22.png16debian/icons/odf6otp-20x22.png
17debian/icons/odf6oth-20x22.png17debian/icons/odf6oth-20x22.png
18debian/icons/openlogo-75.png18debian/icons/openlogo-75.png
19debian/icons/ubuntu-logo.png
19debian/upstream/signing-key.pgp20debian/upstream/signing-key.pgp
20debian/perl-framework/t/htdocs/apache/acceptpathinfo/index.shtml21debian/perl-framework/t/htdocs/apache/acceptpathinfo/index.shtml
21debian/perl-framework/t/htdocs/apache/acceptpathinfo/info.php22debian/perl-framework/t/htdocs/apache/acceptpathinfo/info.php
diff --git a/debian/tests/check-http2 b/debian/tests/check-http2
22new file mode 10064423new file mode 100644
index 0000000..6bc9125
--- /dev/null
+++ b/debian/tests/check-http2
@@ -0,0 +1,41 @@
1#!/bin/sh
2set -uxe
3
4# http2 is rather new, check that it at least generally works
5# Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
6
7a2enmod http2
8a2enmod ssl
9a2ensite default-ssl
10# Enable globally
11echo "Protocols h2c h2 http/1.1" >> /etc/apache2/apache2.conf
12service apache2 restart
13
14# Use curl here. wget doesn't work on Debian, even with --no-check-certificate
15# wget on Debian gives me:
16# GnuTLS: A TLS warning alert has been received.
17# Unable to establish SSL connection.
18# Presumably this is due to the self-signed certificate, but I'm not sure how
19# to skip the warning with wget. curl will do for now.
20echo "Hello, world!" > /var/www/html/hello.txt
21
22testapache () {
23 cmd="${1}"
24 result=$(${cmd})
25
26 if [ "$result" != "Hello, world!" ]; then
27 echo "Unexpected result: ${result}" >&2
28 exit 1
29 else
30 echo OK
31 fi
32}
33
34# https shall not affect http
35testapache "curl -s -k http://localhost/hello.txt"
36# https shall not affect https
37testapache "curl -s -k https://localhost/hello.txt"
38#plain http2
39testapache "nghttp --no-verify-peer https://localhost/hello.txt"
40#http2 upgrade
41testapache "nghttp -u --no-verify-peer http://localhost/hello.txt"
diff --git a/debian/tests/control b/debian/tests/control
index fb913b5..230f19e 100644
--- a/debian/tests/control
+++ b/debian/tests/control
@@ -23,6 +23,10 @@ Tests: ssl-passphrase
23Restrictions: needs-root allow-stderr breaks-testbed23Restrictions: needs-root allow-stderr breaks-testbed
24Depends: apache2, curl, expect, ssl-cert24Depends: apache2, curl, expect, ssl-cert
2525
26Tests: check-http2
27Restrictions: needs-root allow-stderr breaks-testbed
28Depends: apache2, curl, ssl-cert, nghttp2-client
29
26Tests: chroot30Tests: chroot
27Features: no-build-needed31Features: no-build-needed
28Restrictions: needs-root allow-stderr breaks-testbed32Restrictions: needs-root allow-stderr breaks-testbed
diff --git a/docs/manual/style/latex/atbeginend.sty b/docs/manual/style/latex/atbeginend.sty
29new file mode 10064433new file mode 100644
index 0000000..79b555d
--- /dev/null
+++ b/docs/manual/style/latex/atbeginend.sty
@@ -0,0 +1,80 @@
1% atbeginend.sty
2%
3% Licensed to the Apache Software Foundation (ASF) under one or more
4% contributor license agreements. See the NOTICE file distributed with
5% this work for additional information regarding copyright ownership.
6% The ASF licenses this file to You under the Apache License, Version 2.0
7% (the "License"); you may not use this file except in compliance with
8% the License. You may obtain a copy of the License at
9%
10% http://www.apache.org/licenses/LICENSE-2.0
11%
12% Unless required by applicable law or agreed to in writing, software
13% distributed under the License is distributed on an "AS IS" BASIS,
14% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15% See the License for the specific language governing permissions and
16% limitations under the License.
17
18% defines
19% \BeforeBegin{environment}{code-to-execute}
20% \BeforeEnd {environment}{code-to-execute}
21% \AfterBegin {environment}{code-to-execute}
22% \AfterEnd {environment}{code-to-execute}
23%
24% Save \begin and \end to \BeginEnvironment and \EndEnvironment
25\let\BeginEnvironment=\begin
26\let\EndEnvironment=\end
27
28\def\IfUnDef#1{\expandafter\ifx\csname#1\endcsname\relax}
29
30% Null command needed to for \nothing{something}=.nothing.
31\def\NullCom#1{}
32
33\def\begin#1{%
34%
35% if defined \BeforeBeg for this environment, execute it
36\IfUnDef{BeforeBeg#1}\else\csname BeforeBeg#1\endcsname\fi%
37%
38%
39%
40\IfUnDef{AfterBeg#1}% This is done to skip the command for environments
41 % which can take arguments, like multicols; YOU MUST NOT
42 % USE \AfterBegin{...}{...} for such environments!
43 \let\SaveBegEng=\BeginEnvironment%
44\else%
45 % Start this environment
46 \BeginEnvironment{#1}%
47 % and execute code after \begin{environment}
48 \csname AfterBeg#1\endcsname%
49 %
50 \let\SaveBegEng=\NullCom%
51\fi%
52\SaveBegEng{#1}%
53}
54
55
56\def\end#1{%
57%
58% execute code before \end{environment}
59\IfUnDef{BeforeEnd#1}\else\csname BeforeEnd#1\endcsname\fi%
60%
61% close this environment
62\EndEnvironment{#1}%
63%
64% and execute code after \begin{environment}
65\IfUnDef{AfterEnd#1}\else\csname AfterEnd#1\endcsname\fi%
66}
67
68
69%% Now, define commands
70% \BeforeBegin{environment}{code-to-execute}
71% \BeforeEnd {environment}{code-to-execute}
72% \AfterBegin {environment}{code-to-execute}
73% \AfterEnd {environment}{code-to-execute}
74
75\def\BeforeBegin#1#2{\expandafter\gdef\csname BeforeBeg#1\endcsname
76{#2}}
77\def\BeforeEnd #1#2{\expandafter\gdef\csname BeforeEnd#1\endcsname
78{#2}}
79\def\AfterBegin #1#2{\expandafter\gdef\csname AfterBeg#1\endcsname {#2}}
80\def\AfterEnd #1#2{\expandafter\gdef\csname AfterEnd#1\endcsname{#2}}
diff --git a/docs/manual/style/manualpage.dtd b/docs/manual/style/manualpage.dtd
0new file mode 10064481new file mode 100644
index 0000000..e9c22a0
--- /dev/null
+++ b/docs/manual/style/manualpage.dtd
@@ -0,0 +1,29 @@
1<?xml version='1.0' encoding='UTF-8' ?>
2
3<!--
4 Licensed to the Apache Software Foundation (ASF) under one or more
5 contributor license agreements. See the NOTICE file distributed with
6 this work for additional information regarding copyright ownership.
7 The ASF licenses this file to You under the Apache License, Version 2.0
8 (the "License"); you may not use this file except in compliance with
9 the License. You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18-->
19
20<!ENTITY % common SYSTEM "common.dtd">
21%common;
22
23<!-- <manualpage> is the root element -->
24<!ELEMENT manualpage (parentdocument?, title, summary?,
25seealso*, section*)>
26
27<!ATTLIST manualpage metafile CDATA #REQUIRED
28 upgrade CDATA #IMPLIED
29>
diff --git a/docs/manual/style/modulesynopsis.dtd b/docs/manual/style/modulesynopsis.dtd
0new file mode 10064430new file mode 100644
index 0000000..aa3d6ee
--- /dev/null
+++ b/docs/manual/style/modulesynopsis.dtd
@@ -0,0 +1,92 @@
1<?xml version='1.0' encoding='UTF-8' ?>
2
3<!--
4 Licensed to the Apache Software Foundation (ASF) under one or more
5 contributor license agreements. See the NOTICE file distributed with
6 this work for additional information regarding copyright ownership.
7 The ASF licenses this file to You under the Apache License, Version 2.0
8 (the "License"); you may not use this file except in compliance with
9 the License. You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18-->
19
20<!ENTITY % sitemap SYSTEM "sitemap.dtd">
21%sitemap;
22
23<!ELEMENT modulesynopsis (name , description, status, hint?, sourcefile?,
24identifier? , compatibility? , summary? , seealso* , section*,
25directivesynopsis*)>
26
27<!ATTLIST modulesynopsis metafile CDATA #REQUIRED
28 upgrade CDATA #IMPLIED>
29
30<!ELEMENT directivesynopsis (name , description? , syntax? , default?
31, contextlist? , override? , modulelist?, status?, compatibility? ,
32usage?, seealso*)>
33
34<!ELEMENT name (#PCDATA)>
35
36<!ELEMENT status (#PCDATA)>
37
38<!ELEMENT hint %Inline;>
39
40<!ELEMENT identifier (#PCDATA)>
41
42<!ELEMENT sourcefile (#PCDATA)>
43
44<!ELEMENT compatibility %Inline;>
45
46<!ELEMENT description %Inline;>
47
48<!--
49 idtype is appended to the directive name when generating links to allow
50 a directive of type section to share the name with another directive.
51 The attribute type could have been (re)used instead but it would have broken
52 pre-existing links.
53-->
54<!ATTLIST directivesynopsis type CDATA #IMPLIED
55 idtype CDATA #IMPLIED
56 location CDATA #IMPLIED >
57
58<!ELEMENT syntax %Inline;>
59
60<!ELEMENT default (#PCDATA | directive | br)*>
61
62<!ELEMENT contextlist (context+)+>
63
64<!ELEMENT context (#PCDATA)>
65
66<!ELEMENT override (#PCDATA)>
67
68<!ELEMENT usage %Block;>
69
70<!-- Used in index.xml -->
71<!ELEMENT moduleindex (title, summary, seealso*)>
72
73<!ATTLIST moduleindex metafile CDATA #REQUIRED>
74
75<!-- Used in directive.xml -->
76<!ELEMENT directiveindex (title | summary)+>
77
78<!ATTLIST directiveindex metafile CDATA #REQUIRED>
79
80<!-- Used in quickreference.xml -->
81<!ELEMENT quickreference (title | summary | legend)+>
82<!ATTLIST quickreference metafile CDATA #REQUIRED>
83
84<!ELEMENT legend (table, table)>
85
86<!-- Used in overrides.xml -->
87<!ELEMENT overrideindex (title | summary | overridesummary)+>
88<!ATTLIST overrideindex metafile CDATA #REQUIRED>
89
90<!ELEMENT overridesummary %Block;>
91<!ATTLIST overridesummary class CDATA #IMPLIED
92 fallback CDATA #IMPLIED>
diff --git a/docs/manual/style/scripts/MINIFY b/docs/manual/style/scripts/MINIFY
0new file mode 10064493new file mode 100644
index 0000000..2c1efc3
--- /dev/null
+++ b/docs/manual/style/scripts/MINIFY
@@ -0,0 +1,5 @@
1#!/bin/sh
2
3(echo '// see prettify.js for copyright, license and expanded version'; python -mrjsmin <prettify.js) >prettify.min.js
4
5# needs python and rjsmin installed
diff --git a/docs/manual/style/scripts/prettify.js b/docs/manual/style/scripts/prettify.js
0new file mode 1006446new file mode 100644
index 0000000..2df198d
--- /dev/null
+++ b/docs/manual/style/scripts/prettify.js
@@ -0,0 +1,1622 @@
1// Copyright (C) 2006 Google Inc.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15
16/**
17 * @fileoverview
18 * some functions for browser-side pretty printing of code contained in html.
19 *
20 * <p>
21 * For a fairly comprehensive set of languages see the
22 * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
23 * file that came with this source. At a minimum, the lexer should work on a
24 * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
25 * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk
26 * and a subset of Perl, but, because of commenting conventions, doesn't work on
27 * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
28 * <p>
29 * Usage: <ol>
30 * <li> include this source file in an html page via
31 * {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
32 * <li> define style rules. See the example page for examples.
33 * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
34 * {@code class=prettyprint.}
35 * You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
36 * printer needs to do more substantial DOM manipulations to support that, so
37 * some css styles may not be preserved.
38 * </ol>
39 * That's it. I wanted to keep the API as simple as possible, so there's no
40 * need to specify which language the code is in, but if you wish, you can add
41 * another class to the {@code <pre>} or {@code <code>} element to specify the
42 * language, as in {@code <pre class="prettyprint lang-java">}. Any class that
43 * starts with "lang-" followed by a file extension, specifies the file type.
44 * See the "lang-*.js" files in this directory for code that implements
45 * per-language file handlers.
46 * <p>
47 * Change log:<br>
48 * cbeust, 2006/08/22
49 * <blockquote>
50 * Java annotations (start with "@") are now captured as literals ("lit")
51 * </blockquote>
52 * @requires console
53 */
54
55// JSLint declarations
56/*global console, document, navigator, setTimeout, window, define */
57
58/**
59 * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
60 * UI events.
61 * If set to {@code false}, {@code prettyPrint()} is synchronous.
62 */
63window['PR_SHOULD_USE_CONTINUATION'] = true;
64
65/**
66 * Find all the {@code <pre>} and {@code <code>} tags in the DOM with
67 * {@code class=prettyprint} and prettify them.
68 *
69 * @param {Function?} opt_whenDone if specified, called when the last entry
70 * has been finished.
71 */
72var prettyPrintOne;
73/**
74 * Pretty print a chunk of code.
75 *
76 * @param {string} sourceCodeHtml code as html
77 * @return {string} code as html, but prettier
78 */
79var prettyPrint;
80
81
82(function () {
83 var win = window;
84 // Keyword lists for various languages.
85 // We use things that coerce to strings to make them compact when minified
86 // and to defeat aggressive optimizers that fold large string constants.
87 var FLOW_CONTROL_KEYWORDS = ["break,continue,do,else,for,if,return,while"];
88 var C_KEYWORDS = [FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default," +
89 "double,enum,extern,float,goto,int,long,register,short,signed,sizeof,module," +
90 "static,struct,switch,typedef,union,unsigned,void,volatile"];
91 var COMMON_KEYWORDS = [C_KEYWORDS,"catch,class,delete,false,import," +
92 "new,operator,private,protected,public,this,throw,true,try,typeof"];
93 var CPP_KEYWORDS = [COMMON_KEYWORDS,"alignof,align_union,asm,axiom,bool," +
94 "concept,concept_map,const_cast,constexpr,decltype," +
95 "dynamic_cast,explicit,export,friend,inline,late_check," +
96 "mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast," +
97 "template,typeid,typename,using,virtual,where,request_req"];
98 var JAVA_KEYWORDS = [COMMON_KEYWORDS,
99 "abstract,boolean,byte,extends,final,finally,implements,import," +
100 "instanceof,null,native,package,strictfp,super,synchronized,throws," +
101 "transient"];
102 var CSHARP_KEYWORDS = [JAVA_KEYWORDS,
103 "as,base,by,checked,decimal,delegate,descending,dynamic,event," +
104 "fixed,foreach,from,group,implicit,in,interface,internal,into,is,let," +
105 "lock,object,out,override,orderby,params,partial,readonly,ref,sbyte," +
106 "sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort," +
107 "var,virtual,where"];
108 var COFFEE_KEYWORDS = "all,and,by,catch,class,else,extends,false,finally," +
109 "for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then," +
110 "throw,true,try,unless,until,when,while,yes";
111 var JSCRIPT_KEYWORDS = [COMMON_KEYWORDS,
112 "debugger,eval,export,function,get,null,set,undefined,var,with," +
113 "Infinity,NaN"];
114 var PERL_KEYWORDS = "caller,delete,die,do,dump,else,elsif,eval,exit,foreach,for," +
115 "goto,if,import,last,local,my,next,no,our,print,printf,package,redo,require," +
116 "sub,undef,unless,until,use,wantarray,while,BEGIN,END";
117 var PHP_KEYWORDS = "abstract,and,array,as,break,case,catch,cfunction,class," +
118 "clone,const,continue,declare,default,do,else,elseif,enddeclare,endfor," +
119 "endforeach,endif,endswitch,endwhile,extends,final,for,foreach,function," +
120 "global,goto,if,implements,interface,instanceof,namespace,new,old_function," +
121 "or,private,protected,public,static,switch,throw,try,use,var,while,xor," +
122 "die,echo,empty,exit,eval,include,include_once,isset,list,require," +
123 "require_once,return,print,unset";
124 var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "and,as,assert,class,def,del," +
125 "elif,except,exec,finally,from,global,import,in,is,lambda," +
126 "nonlocal,not,or,pass,print,raise,try,with,yield," +
127 "False,True,None"];
128 var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "alias,and,begin,case,class," +
129 "def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo," +
130 "rescue,retry,self,super,then,true,undef,unless,until,when,yield," +
131 "BEGIN,END"];
132 var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "case,done,elif,esac,eval,fi," +
133 "function,in,local,set,then,until,echo"];
134 var CONFIG_ENVS = ["User-Agent,HTTP_USER_AGENT,HTTP_REFERER,HTTP_COOKIE,HTTP_FORWARDED,HTTP_HOST,HTTP_PROXY_CONNECTION,HTTP_ACCEPT,REMOTE_ADDR,REMOTE_HOST,REMOTE_PORT,REMOTE_USER,REMOTE_IDENT,REQUEST_METHOD,SCRIPT_FILENAME,PATH_INFO,QUERY_STRING,AUTH_TYPE,DOCUMENT_ROOT,SERVER_ADMIN,SERVER_NAME,SERVER_ADDR,SERVER_PORT,SERVER_PROTOCOL,SERVER_SOFTWARE,TIME_YEAR,TIME_MON,TIME_DAY,TIME_HOUR,TIME_MIN,TIME_SEC,TIME_WDAY,TIME,API_VERSION,THE_REQUEST,REQUEST_URI,REQUEST_FILENAME,IS_SUBREQ,HTTPS,REQUEST_SCHEME"];
135 var CONFIG_KEYWORDS = ["<AuthnProviderAlias>,<AuthzProviderAlias>,<Directory>,<DirectoryMatch>,<Else>,<ElseIf>,<Files>,<FilesMatch>,<If>,<IfDefine>,<IfModule>,<IfVersion>,<Limit>,<LimitExcept>,<Location>,<LocationMatch>,<MDomainSet>,<Macro>,<Proxy>,<ProxyMatch>,<RequireAll>,<RequireAny>,<RequireNone>,<VirtualHost>,AcceptFilter,AcceptPathInfo,AccessFileName,Action,AddAlt,AddAltByEncoding,AddAltByType,AddCharset,AddDefaultCharset,AddDescription,AddEncoding,AddHandler,AddIcon,AddIconByEncoding,AddIconByType,AddInputFilter,AddLanguage,AddModuleInfo,AddOutputFilter,AddOutputFilterByType,AddType,Alias,AliasMatch,Allow,AllowCONNECT,AllowEncodedSlashes,AllowMethods,AllowOverride,AllowOverrideList,Anonymous,Anonymous_LogEmail,Anonymous_MustGiveEmail,Anonymous_NoUserID,Anonymous_VerifyEmail,AsyncRequestWorkerFactor,AuthBasicAuthoritative,AuthBasicFake,AuthBasicProvider,AuthBasicUseDigestAlgorithm,AuthDBDUserPWQuery,AuthDBDUserRealmQuery,AuthDBMGroupFile,AuthDBMType,AuthDBMUserFile,AuthDigestAlgorithm,AuthDigestDomain,AuthDigestNonceLifetime,AuthDigestProvider,AuthDigestQop,AuthDigestShmemSize,AuthFormAuthoritative,AuthFormBody,AuthFormDisableNoStore,AuthFormFakeBasicAuth,AuthFormLocation,AuthFormLoginRequiredLocation,AuthFormLoginSuccessLocation,AuthFormLogoutLocation,AuthFormMethod,AuthFormMimetype,AuthFormPassword,AuthFormProvider,AuthFormSitePassphrase,AuthFormSize,AuthFormUsername,AuthGroupFile,AuthLDAPAuthorizePrefix,AuthLDAPBindAuthoritative,AuthLDAPBindDN,AuthLDAPBindPassword,AuthLDAPCharsetConfig,AuthLDAPCompareAsUser,AuthLDAPCompareDNOnServer,AuthLDAPDereferenceAliases,AuthLDAPGroupAttribute,AuthLDAPGroupAttributeIsDN,AuthLDAPInitialBindAsUser,AuthLDAPInitialBindPattern,AuthLDAPMaxSubGroupDepth,AuthLDAPRemoteUserAttribute,AuthLDAPRemoteUserIsDN,AuthLDAPSearchAsUser,AuthLDAPSubGroupAttribute,AuthLDAPSubGroupClass,AuthLDAPUrl,AuthMerging,AuthName,AuthType,AuthUserFile,AuthnCacheContext,AuthnCacheEnable,AuthnCacheProvideFor,AuthnCacheSOCache,AuthnCacheTimeout,AuthnzFcgiCheckAuthnProvider,AuthnzFcgiDefineProvider,AuthzDBDLoginToReferer,AuthzDBDQuery,AuthzDBDRedirectQuery,AuthzDBMType,AuthzSendForbiddenOnFailure,BalancerGrowth,BalancerInherit,BalancerMember,BalancerPersist,BrotliAlterETag,BrotliCompressionMaxInputBlock,BrotliCompressionQuality,BrotliCompressionWindow,BrotliFilterNote,BrowserMatch,BrowserMatchNoCase,BufferSize,BufferedLogs,CGIDScriptTimeout,CGIMapExtension,CGIPassAuth,CGIVar,CacheDefaultExpire,CacheDetailHeader,CacheDirLength,CacheDirLevels,CacheDisable,CacheEnable,CacheFile,CacheHeader,CacheIgnoreCacheControl,CacheIgnoreHeaders,CacheIgnoreNoLastMod,CacheIgnoreQueryString,CacheIgnoreURLSessionIdentifiers,CacheKeyBaseURL,CacheLastModifiedFactor,CacheLock,CacheLockMaxAge,CacheLockPath,CacheMaxExpire,CacheMaxFileSize,CacheMinExpire,CacheMinFileSize,CacheNegotiatedDocs,CacheQuickHandler,CacheReadSize,CacheReadTime,CacheRoot,CacheSocache,CacheSocacheMaxSize,CacheSocacheMaxTime,CacheSocacheMinTime,CacheSocacheReadSize,CacheSocacheReadTime,CacheStaleOnError,CacheStoreExpired,CacheStoreNoStore,CacheStorePrivate,CharsetDefault,CharsetOptions,CharsetSourceEnc,CheckCaseOnly,CheckSpelling,ChrootDir,ContentDigest,CookieDomain,CookieExpires,CookieName,CookieStyle,CookieTracking,CoreDumpDirectory,CustomLog,DBDExptime,DBDInitSQL,DBDKeep,DBDMax,DBDMin,DBDParams,DBDPersist,DBDPrepareSQL,DBDriver,DTracePrivileges,Dav,DavDepthInfinity,DavGenericLockDB,DavLockDB,DavMinTimeout,DefaultIcon,DefaultLanguage,DefaultRuntimeDir,DefaultType,Define,DeflateBufferSize,DeflateCompressionLevel,DeflateFilterNote,DeflateInflateLimitRequestBody,DeflateInflateRatioBurst,DeflateInflateRatioLimit,DeflateMemLevel,DeflateWindowSize,Deny,DirectoryCheckHandler,DirectoryIndex,DirectoryIndexRedirect,DirectorySlash,DocumentRoot,DumpIOInput,DumpIOOutput,EnableExceptionHook,EnableMMAP,EnableSendfile,Error,ErrorDocument,ErrorLog,ErrorLogFormat,Example,ExpiresActive,ExpiresByType,ExpiresDefault,ExtFilterDefine,ExtFilterOptions,ExtendedStatus,FallbackResource,FileETag,FilterChain,FilterDeclare,FilterProtocol,FilterProvider,FilterTrace,ForceLanguagePriority,ForceType,ForensicLog,GlobalLog,GprofDir,GracefulShutdownTimeout,Group,H2CopyFiles,H2Direct,H2EarlyHints,H2MaxSessionStreams,H2MaxWorkerIdleSeconds,H2MaxWorkers,H2MinWorkers,H2ModernTLSOnly,H2Push,H2PushDiarySize,H2PushPriority,H2PushResource,H2SerializeHeaders,H2StreamMaxMemSize,H2TLSCoolDownSecs,H2TLSWarmUpSize,H2Upgrade,H2WindowSize,Header,HeaderName,HeartbeatAddress,HeartbeatListen,HeartbeatMaxServers,HeartbeatStorage,HeartbeatStorage,HostnameLookups,HttpProtocolOptions,ISAPIAppendLogToErrors,ISAPIAppendLogToQuery,ISAPICacheFile,ISAPIFakeAsync,ISAPILogNotSupported,ISAPIReadAheadBuffer,IdentityCheck,IdentityCheckTimeout,ImapBase,ImapDefault,ImapMenu,Include,IncludeOptional,IndexHeadInsert,IndexIgnore,IndexIgnoreReset,IndexOptions,IndexOrderDefault,IndexStyleSheet,InputSed,KeepAlive,KeepAliveTimeout,KeptBodySize,LDAPCacheEntries,LDAPCacheTTL,LDAPConnectionPoolTTL,LDAPConnectionTimeout,LDAPLibraryDebug,LDAPOpCacheEntries,LDAPOpCacheTTL,LDAPReferralHopLimit,LDAPReferrals,LDAPRetries,LDAPRetryDelay,LDAPSharedCacheFile,LDAPSharedCacheSize,LDAPTimeout,LDAPTrustedClientCert,LDAPTrustedGlobalCert,LDAPTrustedMode,LDAPVerifyServerCert,LanguagePriority,LimitInternalRecursion,LimitRequestBody,LimitRequestFieldSize,LimitRequestFields,LimitRequestLine,LimitXMLRequestBody,Listen,ListenBackLog,ListenCoresBucketsRatio,LoadFile,LoadModule,LogFormat,LogIOTrackTTFB,LogLevel,LogMessage,LuaAuthzProvider,LuaCodeCache,LuaHookAccessChecker,LuaHookAuthChecker,LuaHookCheckUserID,LuaHookFixups,LuaHookInsertFilter,LuaHookLog,LuaHookMapToStorage,LuaHookTranslateName,LuaHookTypeChecker,LuaInherit,LuaInputFilter,LuaMapHandler,LuaOutputFilter,LuaPackageCPath,LuaPackagePath,LuaQuickHandler,LuaRoot,LuaScope,MDBaseServer,MDCAChallenges,MDCertificateAgreement,MDCertificateAuthority,MDCertificateProtocol,MDDriveMode,MDHttpProxy,MDMember,MDMembers,MDMustStaple,MDNotifyCmd,MDPortMap,MDPrivateKeys,MDRenewWindow,MDRequireHttps,MDStoreDir,MDomain,MMapFile,MaxConnectionsPerChild,MaxKeepAliveRequests,MaxMemFree,MaxRangeOverlaps,MaxRangeReversals,MaxRanges,MaxRequestWorkers,MaxSpareServers,MaxSpareThreads,MaxThreads,MemcacheConnTTL,MergeTrailers,MetaDir,MetaFiles,MetaSuffix,MimeMagicFile,MinSpareServers,MinSpareThreads,ModMimeUsePathInfo,ModemStandard,MultiviewsMatch,Mutex,NWSSLTrustedCerts,NWSSLUpgradeable,NameVirtualHost,NoProxy,Options,Order,OutputSed,PassEnv,PidFile,PrivilegesMode,Protocol,ProtocolEcho,Protocols,ProtocolsHonorOrder,ProxyAddHeaders,ProxyBadHeader,ProxyBlock,ProxyDomain,ProxyErrorOverride,ProxyExpressDBMFile,ProxyExpressDBMType,ProxyExpressEnable,ProxyFCGIBackendType,ProxyFCGISetEnvIf,ProxyFtpDirCharset,ProxyFtpEscapeWildcards,ProxyFtpListOnWildcard,ProxyHCExpr,ProxyHCTPsize,ProxyHCTemplate,ProxyHTMLBufSize,ProxyHTMLCharsetOut,ProxyHTMLDocType,ProxyHTMLEnable,ProxyHTMLEvents,ProxyHTMLExtended,ProxyHTMLFixups,ProxyHTMLInterp,ProxyHTMLLinks,ProxyHTMLMeta,ProxyHTMLStripComments,ProxyHTMLURLMap,ProxyIOBufferSize,ProxyMaxForwards,ProxyPass,ProxyPassInherit,ProxyPassInterpolateEnv,ProxyPassMatch,ProxyPassReverse,ProxyPassReverseCookieDomain,ProxyPassReverseCookiePath,ProxyPreserveHost,ProxyReceiveBufferSize,ProxyRemote,ProxyRemoteMatch,ProxyRequests,ProxySCGIInternalRedirect,ProxySCGISendfile,ProxySet,ProxySourceAddress,ProxyStatus,ProxyTimeout,ProxyVia,QualifyRedirectURL,RLimitCPU,RLimitMEM,RLimitNPROC,ReadmeName,ReceiveBufferSize,Redirect,RedirectMatch,RedirectPermanent,RedirectTemp,ReflectorHeader,RegisterHttpMethod,RemoteIPHeader,RemoteIPInternalProxy,RemoteIPInternalProxyList,RemoteIPProxiesHeader,RemoteIPTrustedProxy,RemoteIPTrustedProxyList,RemoveCharset,RemoveEncoding,RemoveHandler,RemoveInputFilter,RemoveLanguage,RemoveOutputFilter,RemoveType,RequestHeader,RequestReadTimeout,Require,RewriteBase,RewriteCond,RewriteEngine,RewriteMap,RewriteOptions,RewriteRule,SSIETag,SSIEndTag,SSIErrorMsg,SSILastModified,SSILegacyExprParser,SSIStartTag,SSITimeFormat,SSIUndefinedEcho,SSLCACertificateFile,SSLCACertificatePath,SSLCADNRequestFile,SSLCADNRequestPath,SSLCARevocationCheck,SSLCARevocationFile,SSLCARevocationPath,SSLCertificateChainFile,SSLCertificateFile,SSLCertificateKeyFile,SSLCipherSuite,SSLCompression,SSLCryptoDevice,SSLEngine,SSLFIPS,SSLHonorCipherOrder,SSLInsecureRenegotiation,SSLOCSPDefaultResponder,SSLOCSPEnable,SSLOCSPNoverify,SSLOCSPOverrideResponder,SSLOCSPProxyURL,SSLOCSPResponderCertificateFile,SSLOCSPResponderTimeout,SSLOCSPResponseMaxAge,SSLOCSPResponseTimeSkew,SSLOCSPUseRequestNonce,SSLOpenSSLConfCmd,SSLOptions,SSLPassPhraseDialog,SSLProtocol,SSLProxyCACertificateFile,SSLProxyCACertificatePath,SSLProxyCARevocationCheck,SSLProxyCARevocationFile,SSLProxyCARevocationPath,SSLProxyCheckPeerCN,SSLProxyCheckPeerExpire,SSLProxyCheckPeerName,SSLProxyCipherSuite,SSLProxyEngine,SSLProxyMachineCertificateChainFile,SSLProxyMachineCertificateFile,SSLProxyMachineCertificatePath,SSLProxyProtocol,SSLProxyVerify,SSLProxyVerifyDepth,SSLRandomSeed,SSLRenegBufferSize,SSLRequire,SSLRequireSSL,SSLSRPUnknownUserSeed,SSLSRPVerifierFile,SSLSessionCache,SSLSessionCacheTimeout,SSLSessionTicketKeyFile,SSLSessionTickets,SSLStaplingCache,SSLStaplingErrorCacheTimeout,SSLStaplingFakeTryLater,SSLStaplingForceURL,SSLStaplingResponderTimeout,SSLStaplingResponseMaxAge,SSLStaplingResponseTimeSkew,SSLStaplingReturnResponderErrors,SSLStaplingStandardCacheTimeout,SSLStrictSNIVHostCheck,SSLUseStapling,SSLUserName,SSLVerifyClient,SSLVerifyDepth,Satisfy,ScoreBoardFile,Script,ScriptAlias,ScriptAliasMatch,ScriptInterpreterSource,ScriptLog,ScriptLogBuffer,ScriptLogLength,ScriptSock,SecureListen,SeeRequestTail,SendBufferSize,ServerAdmin,ServerAlias,ServerLimit,ServerName,ServerPath,ServerRoot,ServerSignature,ServerTokens,Session,SessionCookieName,SessionCookieName2,SessionCookieRemove,SessionCryptoCipher,SessionCryptoDriver,SessionCryptoPassphrase,SessionCryptoPassphraseFile,SessionDBDCookieName,SessionDBDCookieName2,SessionDBDCookieRemove,SessionDBDDeleteLabel,SessionDBDInsertLabel,SessionDBDPerUser,SessionDBDSelectLabel,SessionDBDUpdateLabel,SessionEnv,SessionExclude,SessionHeader,SessionInclude,SessionMaxAge,SetEnv,SetEnvIf,SetEnvIfExpr,SetEnvIfNoCase,SetHandler,SetInputFilter,SetOutputFilter,StartServers,StartThreads,Substitute,SubstituteInheritBefore,SubstituteMaxLineLength,Suexec,SuexecUserGroup,ThreadLimit,ThreadStackSize,ThreadsPerChild,TimeOut,TraceEnable,TransferLog,TypesConfig,UnDefine,UndefMacro,UnsetEnv,Use,UseCanonicalName,UseCanonicalPhysicalPort,User,UserDir,VHostCGIMode,VHostCGIPrivs,VHostGroup,VHostPrivs,VHostSecure,VHostUser,VirtualDocumentRoot,VirtualDocumentRootIP,VirtualScriptAlias,VirtualScriptAliasIP,WatchdogInterval,XBitHack,xml2EncAlias,xml2EncDefault,xml2StartParse"]
136 var CONFIG_OPTIONS = /^[\\+\\-]?(AuthConfig|IncludesNOEXEC|ExecCGI|FollowSymLinks|MultiViews|Includes|Indexes|SymLinksIfOwnerMatch)\b/i;
137 var ALL_KEYWORDS = [
138 CPP_KEYWORDS, CSHARP_KEYWORDS, JSCRIPT_KEYWORDS, PERL_KEYWORDS +
139 PYTHON_KEYWORDS, RUBY_KEYWORDS, SH_KEYWORDS, CONFIG_KEYWORDS, PHP_KEYWORDS];
140 var C_TYPES = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float|char|void|const|static|struct)\d*(_t)?\b)|[a-z_]+_rec|cmd_parms\b/;
141
142 // token style names. correspond to css classes
143 /**
144 * token style for a string literal
145 * @const
146 */
147 var PR_STRING = 'str';
148 /**
149 * token style for a keyword
150 * @const
151 */
152 var PR_KEYWORD = 'kwd';
153 /**
154 * token style for a comment
155 * @const
156 */
157 var PR_COMMENT = 'com';
158 /**
159 * token style for a type
160 * @const
161 */
162 var PR_TYPE = 'typ';
163 /**
164 * token style for a literal value. e.g. 1, null, true.
165 * @const
166 */
167 var PR_LITERAL = 'lit';
168 /**
169 * token style for a punctuation string.
170 * @const
171 */
172 var PR_PUNCTUATION = 'pun';
173 /**
174 * token style for plain text.
175 * @const
176 */
177 var PR_PLAIN = 'pln';
178
179 /**
180 * token style for an sgml tag.
181 * @const
182 */
183 var PR_TAG = 'tag';
184 /**
185 * token style for a markup declaration such as a DOCTYPE.
186 * @const
187 */
188 var PR_DECLARATION = 'dec';
189 /**
190 * token style for embedded source.
191 * @const
192 */
193 var PR_SOURCE = 'src';
194 /**
195 * token style for an sgml attribute name.
196 * @const
197 */
198 var PR_ATTRIB_NAME = 'atn';
199 /**
200 * token style for an sgml attribute value.
201 * @const
202 */
203 var PR_ATTRIB_VALUE = 'atv';
204
205 /**
206 * A class that indicates a section of markup that is not code, e.g. to allow
207 * embedding of line numbers within code listings.
208 * @const
209 */
210 var PR_NOCODE = 'nocode';
211
212
213
214/**
215 * A set of tokens that can precede a regular expression literal in
216 * javascript
217 * http://web.archive.org/web/20070717142515/http://www.mozilla.org/js/language/js20/rationale/syntax.html
218 * has the full list, but I've removed ones that might be problematic when
219 * seen in languages that don't support regular expression literals.
220 *
221 * <p>Specifically, I've removed any keywords that can't precede a regexp
222 * literal in a syntactically legal javascript program, and I've removed the
223 * "in" keyword since it's not a keyword in many languages, and might be used
224 * as a count of inches.
225 *
226 * <p>The link above does not accurately describe EcmaScript rules since
227 * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
228 * very well in practice.
229 *
230 * @private
231 * @const
232 */
233var REGEXP_PRECEDER_PATTERN = '(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*';
234
235// CAVEAT: this does not properly handle the case where a regular
236// expression immediately follows another since a regular expression may
237// have flags for case-sensitivity and the like. Having regexp tokens
238// adjacent is not valid in any language I'm aware of, so I'm punting.
239// TODO: maybe style special characters inside a regexp as punctuation.
240
241
242 /**
243 * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
244 * matches the union of the sets of strings matched by the input RegExp.
245 * Since it matches globally, if the input strings have a start-of-input
246 * anchor (/^.../), it is ignored for the purposes of unioning.
247 * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
248 * @return {RegExp} a global regex.
249 */
250 function combinePrefixPatterns(regexs) {
251 var capturedGroupIndex = 0;
252
253 var needToFoldCase = false;
254 var ignoreCase = false;
255 for (var i = 0, n = regexs.length; i < n; ++i) {
256 var regex = regexs[i];
257 if (regex.ignoreCase) {
258 ignoreCase = true;
259 } else if (/[a-z]/i.test(regex.source.replace(
260 /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
261 needToFoldCase = true;
262 ignoreCase = false;
263 break;
264 }
265 }
266
267 var escapeCharToCodeUnit = {
268 'b': 8,
269 't': 9,
270 'n': 0xa,
271 'v': 0xb,
272 'f': 0xc,
273 'r': 0xd
274 };
275
276 function decodeEscape(charsetPart) {
277 var cc0 = charsetPart.charCodeAt(0);
278 if (cc0 !== 92 /* \\ */) {
279 return cc0;
280 }
281 var c1 = charsetPart.charAt(1);
282 cc0 = escapeCharToCodeUnit[c1];
283 if (cc0) {
284 return cc0;
285 } else if ('0' <= c1 && c1 <= '7') {
286 return parseInt(charsetPart.substring(1), 8);
287 } else if (c1 === 'u' || c1 === 'x') {
288 return parseInt(charsetPart.substring(2), 16);
289 } else {
290 return charsetPart.charCodeAt(1);
291 }
292 }
293
294 function encodeEscape(charCode) {
295 if (charCode < 0x20) {
296 return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
297 }
298 var ch = String.fromCharCode(charCode);
299 return (ch === '\\' || ch === '-' || ch === ']' || ch === '^')
300 ? "\\" + ch : ch;
301 }
302
303 function caseFoldCharset(charSet) {
304 var charsetParts = charSet.substring(1, charSet.length - 1).match(
305 new RegExp(
306 '\\\\u[0-9A-Fa-f]{4}'
307 + '|\\\\x[0-9A-Fa-f]{2}'
308 + '|\\\\[0-3][0-7]{0,2}'
309 + '|\\\\[0-7]{1,2}'
310 + '|\\\\[\\s\\S]'
311 + '|-'
312 + '|[^-\\\\]',
313 'g'));
314 var ranges = [];
315 var inverse = charsetParts[0] === '^';
316
317 var out = ['['];
318 if (inverse) { out.push('^'); }
319
320 for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
321 var p = charsetParts[i];
322 if (/\\[bdsw]/i.test(p)) { // Don't muck with named groups.
323 out.push(p);
324 } else {
325 var start = decodeEscape(p);
326 var end;
327 if (i + 2 < n && '-' === charsetParts[i + 1]) {
328 end = decodeEscape(charsetParts[i + 2]);
329 i += 2;
330 } else {
331 end = start;
332 }
333 ranges.push([start, end]);
334 // If the range might intersect letters, then expand it.
335 // This case handling is too simplistic.
336 // It does not deal with non-latin case folding.
337 // It works for latin source code identifiers though.
338 if (!(end < 65 || start > 122)) {
339 if (!(end < 65 || start > 90)) {
340 ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
341 }
342 if (!(end < 97 || start > 122)) {
343 ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
344 }
345 }
346 }
347 }
348
349 // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
350 // -> [[1, 12], [14, 14], [16, 17]]
351 ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1] - a[1]); });
352 var consolidatedRanges = [];
353 var lastRange = [];
354 for (var i = 0; i < ranges.length; ++i) {
355 var range = ranges[i];
356 if (range[0] <= lastRange[1] + 1) {
357 lastRange[1] = Math.max(lastRange[1], range[1]);
358 } else {
359 consolidatedRanges.push(lastRange = range);
360 }
361 }
362
363 for (var i = 0; i < consolidatedRanges.length; ++i) {
364 var range = consolidatedRanges[i];
365 out.push(encodeEscape(range[0]));
366 if (range[1] > range[0]) {
367 if (range[1] + 1 > range[0]) { out.push('-'); }
368 out.push(encodeEscape(range[1]));
369 }
370 }
371 out.push(']');
372 return out.join('');
373 }
374
375 function allowAnywhereFoldCaseAndRenumberGroups(regex) {
376 // Split into character sets, escape sequences, punctuation strings
377 // like ('(', '(?:', ')', '^'), and runs of characters that do not
378 // include any of the above.
379 var parts = regex.source.match(
380 new RegExp(
381 '(?:'
382 + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]' // a character set
383 + '|\\\\u[A-Fa-f0-9]{4}' // a unicode escape
384 + '|\\\\x[A-Fa-f0-9]{2}' // a hex escape
385 + '|\\\\[0-9]+' // a back-reference or octal escape
386 + '|\\\\[^ux0-9]' // other escape sequence
387 + '|\\(\\?[:!=]' // start of a non-capturing group
388 + '|[\\(\\)\\^]' // start/end of a group, or line start
389 + '|[^\\x5B\\x5C\\(\\)\\^]+' // run of other characters
390 + ')',
391 'g'));
392 var n = parts.length;
393
394 // Maps captured group numbers to the number they will occupy in
395 // the output or to -1 if that has not been determined, or to
396 // undefined if they need not be capturing in the output.
397 var capturedGroups = [];
398
399 // Walk over and identify back references to build the capturedGroups
400 // mapping.
401 for (var i = 0, groupIndex = 0; i < n; ++i) {
402 var p = parts[i];
403 if (p === '(') {
404 // groups are 1-indexed, so max group index is count of '('
405 ++groupIndex;
406 } else if ('\\' === p.charAt(0)) {
407 var decimalValue = +p.substring(1);
408 if (decimalValue) {
409 if (decimalValue <= groupIndex) {
410 capturedGroups[decimalValue] = -1;
411 } else {
412 // Replace with an unambiguous escape sequence so that
413 // an octal escape sequence does not turn into a backreference
414 // to a capturing group from an earlier regex.
415 parts[i] = encodeEscape(decimalValue);
416 }
417 }
418 }
419 }
420
421 // Renumber groups and reduce capturing groups to non-capturing groups
422 // where possible.
423 for (var i = 1; i < capturedGroups.length; ++i) {
424 if (-1 === capturedGroups[i]) {
425 capturedGroups[i] = ++capturedGroupIndex;
426 }
427 }
428 for (var i = 0, groupIndex = 0; i < n; ++i) {
429 var p = parts[i];
430 if (p === '(') {
431 ++groupIndex;
432 if (!capturedGroups[groupIndex]) {
433 parts[i] = '(?:';
434 }
435 } else if ('\\' === p.charAt(0)) {
436 var decimalValue = +p.substring(1);
437 if (decimalValue && decimalValue <= groupIndex) {
438 parts[i] = '\\' + capturedGroups[decimalValue];
439 }
440 }
441 }
442
443 // Remove any prefix anchors so that the output will match anywhere.
444 // ^^ really does mean an anchored match though.
445 for (var i = 0; i < n; ++i) {
446 if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
447 }
448
449 // Expand letters to groups to handle mixing of case-sensitive and
450 // case-insensitive patterns if necessary.
451 if (regex.ignoreCase && needToFoldCase) {
452 for (var i = 0; i < n; ++i) {
453 var p = parts[i];
454 var ch0 = p.charAt(0);
455 if (p.length >= 2 && ch0 === '[') {
456 parts[i] = caseFoldCharset(p);
457 } else if (ch0 !== '\\') {
458 // TODO: handle letters in numeric escapes.
459 parts[i] = p.replace(
460 /[a-zA-Z]/g,
461 function (ch) {
462 var cc = ch.charCodeAt(0);
463 return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
464 });
465 }
466 }
467 }
468
469 return parts.join('');
470 }
471
472 var rewritten = [];
473 for (var i = 0, n = regexs.length; i < n; ++i) {
474 var regex = regexs[i];
475 if (regex.global || regex.multiline) { throw new Error('' + regex); }
476 rewritten.push(
477 '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
478 }
479
480 return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
481 }
482
483
484 /**
485 * Split markup into a string of source code and an array mapping ranges in
486 * that string to the text nodes in which they appear.
487 *
488 * <p>
489 * The HTML DOM structure:</p>
490 * <pre>
491 * (Element "p"
492 * (Element "b"
493 * (Text "print ")) ; #1
494 * (Text "'Hello '") ; #2
495 * (Element "br") ; #3
496 * (Text " + 'World';")) ; #4
497 * </pre>
498 * <p>
499 * corresponds to the HTML
500 * {@code <p><b>print </b>'Hello '<br> + 'World';</p>}.</p>
501 *
502 * <p>
503 * It will produce the output:</p>
504 * <pre>
505 * {
506 * sourceCode: "print 'Hello '\n + 'World';",
507 * // 1 2
508 * // 012345678901234 5678901234567
509 * spans: [0, #1, 6, #2, 14, #3, 15, #4]
510 * }
511 * </pre>
512 * <p>
513 * where #1 is a reference to the {@code "print "} text node above, and so
514 * on for the other text nodes.
515 * </p>
516 *
517 * <p>
518 * The {@code} spans array is an array of pairs. Even elements are the start
519 * indices of substrings, and odd elements are the text nodes (or BR elements)
520 * that contain the text for those substrings.
521 * Substrings continue until the next index or the end of the source.
522 * </p>
523 *
524 * @param {Node} node an HTML DOM subtree containing source-code.
525 * @param {boolean} isPreformatted true if white-space in text nodes should
526 * be considered significant.
527 * @return {Object} source code and the text nodes in which they occur.
528 */
529 function extractSourceSpans(node, isPreformatted) {
530 var nocode = /(?:^|\s)nocode(?:\s|$)/;
531
532 var chunks = [];
533 var length = 0;
534 var spans = [];
535 var k = 0;
536
537 function walk(node) {
538 switch (node.nodeType) {
539 case 1: // Element
540 if (nocode.test(node.className)) { return; }
541 for (var child = node.firstChild; child; child = child.nextSibling) {
542 walk(child);
543 }
544 var nodeName = node.nodeName.toLowerCase();
545 if ('br' === nodeName || 'li' === nodeName) {
546 chunks[k] = '\n';
547 spans[k << 1] = length++;
548 spans[(k++ << 1) | 1] = node;
549 }
550 break;
551 case 3: case 4: // Text
552 var text = node.nodeValue;
553 if (text.length) {
554 if (!isPreformatted) {
555 text = text.replace(/[ \t\r\n]+/g, ' ');
556 } else {
557 text = text.replace(/\r\n?/g, '\n'); // Normalize newlines.
558 text = text.replace(/^(\r?\n\s*)+/g, ''); // Remove leading newlines
559 text = text.replace(/^\s*/g, ''); // Remove leading spaces due to indented formatting
560 text = text.replace(/(\r?\n\s*)+$/g, ''); // Remove ending newlines
561
562 }
563 // TODO: handle tabs here?
564 chunks[k] = text;
565 spans[k << 1] = length;
566 length += text.length;
567 spans[(k++ << 1) | 1] = node;
568 }
569 break;
570 }
571 }
572
573 walk(node);
574
575 return {
576 sourceCode: chunks.join('').replace(/\n$/, ''),
577 spans: spans
578 };
579 }
580
581
582 /**
583 * Apply the given language handler to sourceCode and add the resulting
584 * decorations to out.
585 * @param {number} basePos the index of sourceCode within the chunk of source
586 * whose decorations are already present on out.
587 */
588 function appendDecorations(basePos, sourceCode, langHandler, out) {
589 if (!sourceCode) { return; }
590 var job = {
591 sourceCode: sourceCode,
592 basePos: basePos
593 };
594 langHandler(job);
595 out.push.apply(out, job.decorations);
596 }
597
598 var notWs = /\S/;
599
600 /**
601 * Given an element, if it contains only one child element and any text nodes
602 * it contains contain only space characters, return the sole child element.
603 * Otherwise returns undefined.
604 * <p>
605 * This is meant to return the CODE element in {@code <pre><code ...>} when
606 * there is a single child element that contains all the non-space textual
607 * content, but not to return anything where there are multiple child elements
608 * as in {@code <pre><code>...</code><code>...</code></pre>} or when there
609 * is textual content.
610 */
611 function childContentWrapper(element) {
612 var wrapper = undefined;
613 for (var c = element.firstChild; c; c = c.nextSibling) {
614 var type = c.nodeType;
615 wrapper = (type === 1) // Element Node
616 ? (wrapper ? element : c)
617 : (type === 3) // Text Node
618 ? (notWs.test(c.nodeValue) ? element : wrapper)
619 : wrapper;
620 }
621 return wrapper === element ? undefined : wrapper;
622 }
623
624 /** Given triples of [style, pattern, context] returns a lexing function,
625 * The lexing function interprets the patterns to find token boundaries and
626 * returns a decoration list of the form
627 * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
628 * where index_n is an index into the sourceCode, and style_n is a style
629 * constant like PR_PLAIN. index_n-1 <= index_n, and style_n-1 applies to
630 * all characters in sourceCode[index_n-1:index_n].
631 *
632 * The stylePatterns is a list whose elements have the form
633 * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
634 *
635 * Style is a style constant like PR_PLAIN, or can be a string of the
636 * form 'lang-FOO', where FOO is a language extension describing the
637 * language of the portion of the token in $1 after pattern executes.
638 * E.g., if style is 'lang-lisp', and group 1 contains the text
639 * '(hello (world))', then that portion of the token will be passed to the
640 * registered lisp handler for formatting.
641 * The text before and after group 1 will be restyled using this decorator
642 * so decorators should take care that this doesn't result in infinite
643 * recursion. For example, the HTML lexer rule for SCRIPT elements looks
644 * something like ['lang-js', /<[s]cript>(.+?)<\/script>/]. This may match
645 * '<script>foo()<\/script>', which would cause the current decorator to
646 * be called with '<script>' which would not match the same rule since
647 * group 1 must not be empty, so it would be instead styled as PR_TAG by
648 * the generic tag rule. The handler registered for the 'js' extension would
649 * then be called with 'foo()', and finally, the current decorator would
650 * be called with '<\/script>' which would not match the original rule and
651 * so the generic tag rule would identify it as a tag.
652 *
653 * Pattern must only match prefixes, and if it matches a prefix, then that
654 * match is considered a token with the same style.
655 *
656 * Context is applied to the last non-whitespace, non-comment token
657 * recognized.
658 *
659 * Shortcut is an optional string of characters, any of which, if the first
660 * character, gurantee that this pattern and only this pattern matches.
661 *
662 * @param {Array} shortcutStylePatterns patterns that always start with
663 * a known character. Must have a shortcut string.
664 * @param {Array} fallthroughStylePatterns patterns that will be tried in
665 * order if the shortcut ones fail. May have shortcuts.
666 *
667 * @return {function (Object)} a
668 * function that takes source code and returns a list of decorations.
669 */
670 function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
671 var shortcuts = {};
672 var tokenizer;
673 (function () {
674 var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
675 var allRegexs = [];
676 var regexKeys = {};
677 for (var i = 0, n = allPatterns.length; i < n; ++i) {
678 var patternParts = allPatterns[i];
679 var shortcutChars = patternParts[3];
680 if (shortcutChars) {
681 for (var c = shortcutChars.length; --c >= 0;) {
682 shortcuts[shortcutChars.charAt(c)] = patternParts;
683 }
684 }
685 var regex = patternParts[1];
686 var k = '' + regex;
687 if (!regexKeys.hasOwnProperty(k)) {
688 allRegexs.push(regex);
689 regexKeys[k] = null;
690 }
691 }
692 allRegexs.push(/[\0-\uffff]/);
693 tokenizer = combinePrefixPatterns(allRegexs);
694 })();
695
696 var nPatterns = fallthroughStylePatterns.length;
697
698 /**
699 * Lexes job.sourceCode and produces an output array job.decorations of
700 * style classes preceded by the position at which they start in
701 * job.sourceCode in order.
702 *
703 * @param {Object} job an object like <pre>{
704 * sourceCode: {string} sourceText plain text,
705 * basePos: {int} position of job.sourceCode in the larger chunk of
706 * sourceCode.
707 * }</pre>
708 */
709 var decorate = function (job) {
710 var sourceCode = job.sourceCode, basePos = job.basePos;
711 /** Even entries are positions in source in ascending order. Odd enties
712 * are style markers (e.g., PR_COMMENT) that run from that position until
713 * the end.
714 * @type {Array.<number|string>}
715 */
716 var decorations = [basePos, PR_PLAIN];
717 var pos = 0; // index into sourceCode
718 var tokens = sourceCode.match(tokenizer) || [];
719 var styleCache = {};
720
721 for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
722 var token = tokens[ti];
723 var style = styleCache[token];
724 var match = void 0;
725
726 var isEmbedded;
727 if (typeof style === 'string') {
728 isEmbedded = false;
729 } else {
730 var patternParts = shortcuts[token.charAt(0)];
731 if (patternParts) {
732 match = token.match(patternParts[1]);
733 style = patternParts[0];
734 } else {
735 for (var i = 0; i < nPatterns; ++i) {
736 patternParts = fallthroughStylePatterns[i];
737 match = token.match(patternParts[1]);
738 if (match) {
739 style = patternParts[0];
740 break;
741 }
742 }
743
744 if (!match) { // make sure that we make progress
745 style = PR_PLAIN;
746 }
747 }
748
749 isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
750 if (isEmbedded && !(match && typeof match[1] === 'string')) {
751 isEmbedded = false;
752 style = PR_SOURCE;
753 }
754
755 if (!isEmbedded) { styleCache[token] = style; }
756 }
757
758 var tokenStart = pos;
759 pos += token.length;
760
761 if (!isEmbedded) {
762 decorations.push(basePos + tokenStart, style);
763 } else { // Treat group 1 as an embedded block of source code.
764 var embeddedSource = match[1];
765 var embeddedSourceStart = token.indexOf(embeddedSource);
766 var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
767 if (match[2]) {
768 // If embeddedSource can be blank, then it would match at the
769 // beginning which would cause us to infinitely recurse on the
770 // entire token, so we catch the right context in match[2].
771 embeddedSourceEnd = token.length - match[2].length;
772 embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
773 }
774 var lang = style.substring(5);
775 // Decorate the left of the embedded source
776 appendDecorations(
777 basePos + tokenStart,
778 token.substring(0, embeddedSourceStart),
779 decorate, decorations);
780 // Decorate the embedded source
781 appendDecorations(
782 basePos + tokenStart + embeddedSourceStart,
783 embeddedSource,
784 langHandlerForExtension(lang, embeddedSource),
785 decorations);
786 // Decorate the right of the embedded section
787 appendDecorations(
788 basePos + tokenStart + embeddedSourceEnd,
789 token.substring(embeddedSourceEnd),
790 decorate, decorations);
791 }
792 }
793 job.decorations = decorations;
794 };
795 return decorate;
796 }
797
798 /** returns a function that produces a list of decorations from source text.
799 *
800 * This code treats ", ', and ` as string delimiters, and \ as a string
801 * escape. It does not recognize perl's qq() style strings.
802 * It has no special handling for double delimiter escapes as in basic, or
803 * the tripled delimiters used in python, but should work on those regardless
804 * although in those cases a single string literal may be broken up into
805 * multiple adjacent string literals.
806 *
807 * It recognizes C, C++, and shell style comments.
808 *
809 * @param {Object} options a set of optional parameters.
810 * @return {function (Object)} a function that examines the source code
811 * in the input job and builds the decoration list.
812 */
813 function sourceDecorator(options) {
814 var shortcutStylePatterns = [], fallthroughStylePatterns = [];
815 if (options['tripleQuotedStrings']) {
816 // '''multi-line-string''', 'single-line-string', and double-quoted
817 shortcutStylePatterns.push(
818 [PR_STRING, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
819 null, '\'"']);
820 } else if (options['multiLineStrings']) {
821 // 'multi-line-string', "multi-line-string"
822 shortcutStylePatterns.push(
823 [PR_STRING, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
824 null, '\'"`']);
825 } else {
826 // 'single-line-string', "single-line-string"
827 shortcutStylePatterns.push(
828 [PR_STRING,
829 /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
830 null, '"\'']);
831 }
832 if (options['verbatimStrings']) {
833 // verbatim-string-literal production from the C# grammar. See issue 93.
834 fallthroughStylePatterns.push(
835 [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
836 }
837 var hc = options['hashComments'];
838 if (hc) {
839 if (options['cStyleComments']) {
840 if (hc > 1) { // multiline hash comments
841 shortcutStylePatterns.push(
842 [PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);
843 } else {
844 // Stop C preprocessor declarations at an unclosed open comment
845 shortcutStylePatterns.push(
846 [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
847 null, '#']);
848 }
849 // #include <stdio.h>
850 fallthroughStylePatterns.push(
851 [PR_STRING,
852 /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,
853 null]);
854 } else {
855 shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
856 }
857 }
858 if (options['cStyleComments']) {
859 fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
860 fallthroughStylePatterns.push(
861 [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
862 }
863 if (options['regexLiterals']) {
864 /**
865 * @const
866 */
867 var REGEX_LITERAL = (
868 // A regular expression literal starts with a slash that is
869 // not followed by * or / so that it is not confused with
870 // comments.
871 '/(?=[^/*])'
872 // and then contains any number of raw characters,
873 + '(?:[^/\\x5B\\x5C]'
874 // escape sequences (\x5C),
875 + '|\\x5C[\\s\\S]'
876 // or non-nesting character sets (\x5B\x5D);
877 + '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
878 // finally closed by a /.
879 + '/');
880 fallthroughStylePatterns.push(
881 ['lang-regex',
882 new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
883 ]);
884 }
885
886 var types = options['types'];
887 if (types) {
888 fallthroughStylePatterns.push([PR_TYPE, types]);
889 }
890
891 if (options['strings']) {
892 var strings = ("" + options['strings']).replace(/^ | $/g, '').replace(/-/g, '\\-');
893 fallthroughStylePatterns.push(
894 [PR_STRING,
895 new RegExp('(?:' + strings.replace(/[\s,]+/g, '|') + ')'),
896 , null]
897 );
898 }
899
900 var keywords = ("" + options['keywords']).replace(/^ | $/g, '');
901 if (keywords.length) {
902 fallthroughStylePatterns.push(
903 [PR_KEYWORD,
904 new RegExp('^(?:' + keywords.replace(/[\s,]+/g, '|') + ')\\b'),
905 null]);
906 }
907
908 shortcutStylePatterns.push([PR_PLAIN, /^\s+/, null, ' \r\n\t\xA0']);
909 if (options['httpdComments']) {
910 fallthroughStylePatterns.push(
911 [PR_PLAIN, /^.*\S.*#/i, null]
912 );
913 }
914
915 fallthroughStylePatterns.push(
916 // TODO(mikesamuel): recognize non-latin letters and numerals in idents
917 [PR_LITERAL, /^@[a-z_$][a-z_$@0-9]*|\bNULL\b/i, null],
918 [PR_LITERAL, CONFIG_OPTIONS, null],
919 //[PR_STRING, CONFIG_ENVS, null],
920 [PR_TAG, /^\b(AuthzProviderAlias|AuthnProviderAlias|RequireAny|RequireAll|RequireNone|Directory|DirectoryMatch|Location|LocationMatch|VirtualHost|If|Else|ElseIf|Proxy\b|LoadBalancer|Files|FilesMatch|Limit|LimitExcept|IfDefine|IfModule|IfVersion)\b/, null],
921 [PR_TYPE, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_(t|req|module)\b)/, null],