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

Proposed by Andreas Hasenack
Status: Superseded
Proposed branch: ~ahasenack/ubuntu/+source/apache2:cosmic-apache2-2.4.33-3
Merge into: ubuntu/+source/apache2:ubuntu/devel
Diff against target: 469391 lines (+439712/-5008) (has conflicts)
2212 files modified
Apache-apr2.dsw (+41/-1)
Apache.dsw (+48/-0)
BuildBin.dsp (+2/-2)
CHANGES (+199/-2)
CMakeLists.txt (+1/-0)
LICENSE (+34/-0)
Makefile.win (+41/-0)
NOTICE (+5/-1)
acinclude.m4 (+2/-2)
build/config.guess (+22/-40)
build/config.sub (+10/-10)
build/installwinconf.awk (+2/-0)
build/ltmain.sh (+2018/-3506)
build/rpm/httpd.spec.in (+2/-15)
config.layout (+24/-0)
configure (+1976/-123)
debian/apache2-data.install (+2/-2)
debian/apache2-dev.install (+3/-3)
debian/apache2-dev.manpages (+1/-1)
debian/apache2-doc.install (+2/-1)
debian/apache2-utils.install (+6/-6)
debian/apache2-utils.manpages (+8/-8)
debian/apache2.dirs (+6/-2)
debian/apache2.docs (+1/-1)
debian/apache2.examples (+2/-2)
debian/apache2.install (+6/-6)
debian/apache2.links (+9/-9)
debian/apache2.maintscript (+1/-1)
debian/apache2.manpages (+6/-6)
debian/changelog (+132/-0)
debian/config-dir/mods-available/brotli.load (+1/-0)
debian/config-dir/mods-available/md.load (+1/-0)
debian/config-dir/mods-available/proxy_uwsgi.load (+2/-0)
debian/control (+99/-20)
debian/convert_docs (+6/-4)
debian/copyright (+0/-1)
debian/patches/customize_apxs.patch (+1/-1)
debian/patches/mod_http2_mem_usage_32bit.diff (+12/-0)
debian/patches/series (+7/-0)
debian/rules (+3/-5)
debian/source/include-binaries (+1/-0)
debian/source/lintian-overrides (+2/-0)
dev/null (+0/-20)
docs/manual/bind.html.de (+1/-1)
docs/manual/bind.html.en (+1/-1)
docs/manual/bind.html.fr (+1/-1)
docs/manual/bind.html.ja.utf8 (+1/-1)
docs/manual/bind.html.ko.euc-kr (+1/-1)
docs/manual/bind.html.tr.utf8 (+1/-1)
docs/manual/caching.html.en (+1/-1)
docs/manual/caching.html.fr (+1/-1)
docs/manual/caching.html.tr.utf8 (+1/-1)
docs/manual/configuring.html.de (+1/-1)
docs/manual/configuring.html.en (+1/-1)
docs/manual/configuring.html.fr (+1/-1)
docs/manual/configuring.html.ja.utf8 (+1/-1)
docs/manual/configuring.html.ko.euc-kr (+1/-1)
docs/manual/configuring.html.tr.utf8 (+1/-1)
docs/manual/content-negotiation.html.en (+1/-1)
docs/manual/content-negotiation.html.fr (+1/-1)
docs/manual/content-negotiation.html.ja.utf8 (+1/-1)
docs/manual/content-negotiation.html.ko.euc-kr (+1/-1)
docs/manual/content-negotiation.html.tr.utf8 (+1/-1)
docs/manual/convenience.map (+20/-0)
docs/manual/custom-error.html.en (+1/-1)
docs/manual/custom-error.html.es (+1/-1)
docs/manual/custom-error.html.fr (+1/-1)
docs/manual/custom-error.html.ja.utf8 (+1/-1)
docs/manual/custom-error.html.ko.euc-kr (+1/-1)
docs/manual/custom-error.html.tr.utf8 (+1/-1)
docs/manual/developer/API.html.en (+1/-1)
docs/manual/developer/debugging.html.en (+1/-1)
docs/manual/developer/documenting.html.en (+1/-1)
docs/manual/developer/documenting.html.zh-cn.utf8 (+1/-1)
docs/manual/developer/filters.html.en (+1/-1)
docs/manual/developer/hooks.html.en (+1/-1)
docs/manual/developer/index.html.en (+1/-1)
docs/manual/developer/index.html.zh-cn.utf8 (+1/-1)
docs/manual/developer/modguide.html.en (+1/-1)
docs/manual/developer/modules.html.en (+1/-1)
docs/manual/developer/modules.html.ja.utf8 (+1/-1)
docs/manual/developer/new_api_2_4.html.en (+1/-1)
docs/manual/developer/output-filters.html.en (+1/-1)
docs/manual/developer/request.html.en (+1/-1)
docs/manual/developer/thread_safety.html.en (+1/-1)
docs/manual/dns-caveats.html.en (+1/-1)
docs/manual/dns-caveats.html.fr (+1/-1)
docs/manual/dns-caveats.html.ja.utf8 (+1/-1)
docs/manual/dns-caveats.html.ko.euc-kr (+1/-1)
docs/manual/dns-caveats.html.tr.utf8 (+1/-1)
docs/manual/dso.html.en (+1/-1)
docs/manual/dso.html.fr (+1/-1)
docs/manual/dso.html.ja.utf8 (+1/-1)
docs/manual/dso.html.ko.euc-kr (+1/-1)
docs/manual/dso.html.tr.utf8 (+1/-1)
docs/manual/env.html.en (+1/-1)
docs/manual/env.html.fr (+1/-1)
docs/manual/env.html.ja.utf8 (+1/-1)
docs/manual/env.html.ko.euc-kr (+1/-1)
docs/manual/env.html.tr.utf8 (+1/-1)
docs/manual/expr.html.en (+1/-1)
docs/manual/expr.html.fr (+1/-1)
docs/manual/faq/index.html.en (+1/-1)
docs/manual/faq/index.html.es (+1/-1)
docs/manual/faq/index.html.fr (+1/-1)
docs/manual/faq/index.html.tr.utf8 (+1/-1)
docs/manual/faq/index.html.zh-cn.utf8 (+1/-1)
docs/manual/filter.html.en (+1/-1)
docs/manual/filter.html.es (+1/-1)
docs/manual/filter.html.fr (+1/-1)
docs/manual/filter.html.ja.utf8 (+1/-1)
docs/manual/filter.html.ko.euc-kr (+1/-1)
docs/manual/filter.html.tr.utf8 (+1/-1)
docs/manual/getting-started.html.en (+1/-1)
docs/manual/getting-started.html.fr (+1/-1)
docs/manual/glossary.html.de (+1/-1)
docs/manual/glossary.html.en (+1/-1)
docs/manual/glossary.html.es (+1/-1)
docs/manual/glossary.html.fr (+1/-1)
docs/manual/glossary.html.ja.utf8 (+1/-1)
docs/manual/glossary.html.ko.euc-kr (+1/-1)
docs/manual/glossary.html.tr.utf8 (+1/-1)
docs/manual/handler.html.en (+1/-1)
docs/manual/handler.html.es (+1/-1)
docs/manual/handler.html.fr (+1/-1)
docs/manual/handler.html.ja.utf8 (+1/-1)
docs/manual/handler.html.ko.euc-kr (+1/-1)
docs/manual/handler.html.tr.utf8 (+1/-1)
docs/manual/handler.html.zh-cn.utf8 (+1/-1)
docs/manual/howto/access.html.en (+1/-1)
docs/manual/howto/access.html.es (+1/-1)
docs/manual/howto/access.html.fr (+1/-1)
docs/manual/howto/auth.html.en (+1/-1)
docs/manual/howto/auth.html.es (+1/-1)
docs/manual/howto/auth.html.fr (+1/-1)
docs/manual/howto/auth.html.ja.utf8 (+1/-1)
docs/manual/howto/auth.html.ko.euc-kr (+1/-1)
docs/manual/howto/auth.html.tr.utf8 (+1/-1)
docs/manual/howto/cgi.html.en (+1/-1)
docs/manual/howto/cgi.html.es (+1/-1)
docs/manual/howto/cgi.html.fr (+1/-1)
docs/manual/howto/cgi.html.ja.utf8 (+1/-1)
docs/manual/howto/cgi.html.ko.euc-kr (+1/-1)
docs/manual/howto/htaccess.html.en (+1/-1)
docs/manual/howto/htaccess.html.es (+1/-1)
docs/manual/howto/htaccess.html.fr (+1/-1)
docs/manual/howto/htaccess.html.ja.utf8 (+1/-1)
docs/manual/howto/htaccess.html.ko.euc-kr (+1/-1)
docs/manual/howto/htaccess.html.pt-br (+1/-1)
docs/manual/howto/http2.html.en (+1/-1)
docs/manual/howto/http2.html.es (+1/-1)
docs/manual/howto/http2.html.fr (+1/-1)
docs/manual/howto/index.html.en (+1/-1)
docs/manual/howto/index.html.es (+1/-1)
docs/manual/howto/index.html.fr (+1/-1)
docs/manual/howto/index.html.ja.utf8 (+1/-1)
docs/manual/howto/index.html.ko.euc-kr (+1/-1)
docs/manual/howto/index.html.zh-cn.utf8 (+1/-1)
docs/manual/howto/public_html.html.en (+1/-1)
docs/manual/howto/public_html.html.es (+1/-1)
docs/manual/howto/public_html.html.fr (+1/-1)
docs/manual/howto/public_html.html.ja.utf8 (+1/-1)
docs/manual/howto/public_html.html.ko.euc-kr (+1/-1)
docs/manual/howto/public_html.html.tr.utf8 (+1/-1)
docs/manual/howto/reverse_proxy.html.en (+1/-1)
docs/manual/howto/ssi.html.en (+1/-1)
docs/manual/howto/ssi.html.fr (+1/-1)
docs/manual/howto/ssi.html.ja.utf8 (+1/-1)
docs/manual/howto/ssi.html.ko.euc-kr (+1/-1)
docs/manual/index.html.da (+1/-1)
docs/manual/index.html.de (+1/-1)
docs/manual/index.html.en (+1/-1)
docs/manual/index.html.es (+1/-1)
docs/manual/index.html.fr (+1/-1)
docs/manual/index.html.ja.utf8 (+1/-1)
docs/manual/index.html.ko.euc-kr (+1/-1)
docs/manual/index.html.pt-br (+1/-1)
docs/manual/index.html.tr.utf8 (+2/-2)
docs/manual/index.html.zh-cn.utf8 (+1/-1)
docs/manual/install.html.de (+1/-1)
docs/manual/install.html.en (+41/-9)
docs/manual/install.html.es (+5/-1)
docs/manual/install.html.fr (+34/-1)
docs/manual/install.html.ja.utf8 (+1/-1)
docs/manual/install.html.ko.euc-kr (+1/-1)
docs/manual/install.html.tr.utf8 (+2/-1)
docs/manual/invoking.html.de (+1/-1)
docs/manual/invoking.html.en (+1/-1)
docs/manual/invoking.html.es (+1/-1)
docs/manual/invoking.html.fr (+1/-1)
docs/manual/invoking.html.ja.utf8 (+1/-1)
docs/manual/invoking.html.ko.euc-kr (+1/-1)
docs/manual/invoking.html.tr.utf8 (+1/-1)
docs/manual/license.html.en (+1/-1)
docs/manual/logs.html.en (+1/-1)
docs/manual/logs.html.fr (+1/-1)
docs/manual/logs.html.ja.utf8 (+1/-1)
docs/manual/logs.html.ko.euc-kr (+1/-1)
docs/manual/logs.html.tr.utf8 (+1/-1)
docs/manual/misc/index.html.en (+1/-1)
docs/manual/misc/index.html.fr (+1/-1)
docs/manual/misc/index.html.ko.euc-kr (+1/-1)
docs/manual/misc/index.html.tr.utf8 (+1/-1)
docs/manual/misc/index.html.zh-cn.utf8 (+1/-1)
docs/manual/misc/password_encryptions.html.en (+1/-1)
docs/manual/misc/password_encryptions.html.fr (+1/-1)
docs/manual/misc/perf-tuning.html.en (+1/-1)
docs/manual/misc/perf-tuning.html.fr (+1/-1)
docs/manual/misc/perf-tuning.html.ko.euc-kr (+1/-1)
docs/manual/misc/perf-tuning.html.tr.utf8 (+1/-1)
docs/manual/misc/relevant_standards.html.en (+1/-1)
docs/manual/misc/relevant_standards.html.fr (+1/-1)
docs/manual/misc/relevant_standards.html.ko.euc-kr (+1/-1)
docs/manual/misc/security_tips.html.en (+1/-1)
docs/manual/misc/security_tips.html.fr (+1/-1)
docs/manual/misc/security_tips.html.ko.euc-kr (+1/-1)
docs/manual/misc/security_tips.html.tr.utf8 (+1/-1)
docs/manual/mod/core.html.de (+9/-3)
docs/manual/mod/core.html.en (+17/-12)
docs/manual/mod/core.html.es (+9/-3)
docs/manual/mod/core.html.fr (+19/-14)
docs/manual/mod/core.html.ja.utf8 (+9/-3)
docs/manual/mod/core.html.tr.utf8 (+38/-22)
docs/manual/mod/directive-dict.html.en (+1/-1)
docs/manual/mod/directive-dict.html.es (+1/-1)
docs/manual/mod/directive-dict.html.fr (+1/-1)
docs/manual/mod/directive-dict.html.ja.utf8 (+1/-1)
docs/manual/mod/directive-dict.html.ko.euc-kr (+1/-1)
docs/manual/mod/directive-dict.html.tr.utf8 (+1/-1)
docs/manual/mod/directives.html.de (+21/-1)
docs/manual/mod/directives.html.en (+21/-1)
docs/manual/mod/directives.html.es (+21/-1)
docs/manual/mod/directives.html.fr (+21/-1)
docs/manual/mod/directives.html.ja.utf8 (+21/-1)
docs/manual/mod/directives.html.ko.euc-kr (+21/-1)
docs/manual/mod/directives.html.tr.utf8 (+21/-1)
docs/manual/mod/directives.html.zh-cn.utf8 (+21/-1)
docs/manual/mod/event.html.en (+7/-2)
docs/manual/mod/event.html.fr (+9/-7)
docs/manual/mod/index.html.de (+5/-1)
docs/manual/mod/index.html.en (+5/-1)
docs/manual/mod/index.html.es (+5/-1)
docs/manual/mod/index.html.fr (+5/-1)
docs/manual/mod/index.html.ja.utf8 (+5/-1)
docs/manual/mod/index.html.ko.euc-kr (+5/-1)
docs/manual/mod/index.html.tr.utf8 (+5/-1)
docs/manual/mod/index.html.zh-cn.utf8 (+5/-1)
docs/manual/mod/mod_access_compat.html.en (+1/-1)
docs/manual/mod/mod_access_compat.html.fr (+1/-1)
docs/manual/mod/mod_access_compat.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_actions.html.de (+1/-1)
docs/manual/mod/mod_actions.html.en (+1/-1)
docs/manual/mod/mod_actions.html.fr (+1/-1)
docs/manual/mod/mod_actions.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_actions.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_alias.html.en (+1/-1)
docs/manual/mod/mod_alias.html.fr (+1/-1)
docs/manual/mod/mod_alias.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_alias.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_alias.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_allowmethods.html.en (+1/-1)
docs/manual/mod/mod_allowmethods.html.fr (+1/-1)
docs/manual/mod/mod_asis.html.en (+1/-1)
docs/manual/mod/mod_asis.html.fr (+1/-1)
docs/manual/mod/mod_asis.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_asis.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_auth_basic.html.en (+5/-5)
docs/manual/mod/mod_auth_basic.html.fr (+4/-4)
docs/manual/mod/mod_auth_basic.html.ja.utf8 (+2/-2)
docs/manual/mod/mod_auth_basic.html.ko.euc-kr (+2/-2)
docs/manual/mod/mod_auth_digest.html.en (+1/-1)
docs/manual/mod/mod_auth_digest.html.fr (+1/-1)
docs/manual/mod/mod_auth_digest.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_auth_form.html.en (+1/-1)
docs/manual/mod/mod_auth_form.html.fr (+1/-1)
docs/manual/mod/mod_authn_anon.html.en (+1/-1)
docs/manual/mod/mod_authn_anon.html.fr (+1/-1)
docs/manual/mod/mod_authn_anon.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_authn_anon.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_authn_core.html.en (+1/-1)
docs/manual/mod/mod_authn_core.html.fr (+1/-1)
docs/manual/mod/mod_authn_dbd.html.en (+1/-1)
docs/manual/mod/mod_authn_dbd.html.fr (+1/-1)
docs/manual/mod/mod_authn_dbm.html.en (+1/-1)
docs/manual/mod/mod_authn_dbm.html.fr (+1/-1)
docs/manual/mod/mod_authn_dbm.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_authn_dbm.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_authn_file.html.en (+1/-1)
docs/manual/mod/mod_authn_file.html.fr (+1/-1)
docs/manual/mod/mod_authn_file.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_authn_file.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_authn_socache.html.en (+1/-3)
docs/manual/mod/mod_authn_socache.html.fr (+2/-4)
docs/manual/mod/mod_authnz_fcgi.html.en (+1/-1)
docs/manual/mod/mod_authnz_ldap.html.en (+3/-3)
docs/manual/mod/mod_authnz_ldap.html.fr (+3/-3)
docs/manual/mod/mod_authz_core.html.en (+1/-1)
docs/manual/mod/mod_authz_core.html.fr (+1/-1)
docs/manual/mod/mod_authz_dbd.html.en (+1/-1)
docs/manual/mod/mod_authz_dbd.html.fr (+1/-1)
docs/manual/mod/mod_authz_dbm.html.en (+1/-1)
docs/manual/mod/mod_authz_dbm.html.fr (+1/-1)
docs/manual/mod/mod_authz_dbm.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_authz_groupfile.html.en (+1/-1)
docs/manual/mod/mod_authz_groupfile.html.fr (+1/-1)
docs/manual/mod/mod_authz_groupfile.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_authz_groupfile.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_authz_host.html.en (+1/-1)
docs/manual/mod/mod_authz_host.html.fr (+1/-1)
docs/manual/mod/mod_authz_owner.html.en (+1/-1)
docs/manual/mod/mod_authz_owner.html.fr (+1/-1)
docs/manual/mod/mod_authz_owner.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_authz_owner.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_authz_user.html.en (+1/-1)
docs/manual/mod/mod_authz_user.html.fr (+1/-1)
docs/manual/mod/mod_authz_user.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_authz_user.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_autoindex.html.en (+1/-1)
docs/manual/mod/mod_autoindex.html.fr (+1/-1)
docs/manual/mod/mod_autoindex.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_autoindex.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_autoindex.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_brotli.html.en (+1/-1)
docs/manual/mod/mod_buffer.html.en (+1/-1)
docs/manual/mod/mod_buffer.html.fr (+1/-1)
docs/manual/mod/mod_cache.html.en (+1/-1)
docs/manual/mod/mod_cache.html.fr (+1/-1)
docs/manual/mod/mod_cache.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_cache.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_cache_disk.html.en (+1/-1)
docs/manual/mod/mod_cache_disk.html.fr (+1/-1)
docs/manual/mod/mod_cache_disk.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_cache_disk.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_cache_socache.html.en (+1/-1)
docs/manual/mod/mod_cache_socache.html.fr (+1/-1)
docs/manual/mod/mod_cern_meta.html.en (+1/-1)
docs/manual/mod/mod_cern_meta.html.fr (+1/-1)
docs/manual/mod/mod_cern_meta.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_cgi.html.en (+1/-1)
docs/manual/mod/mod_cgi.html.fr (+1/-1)
docs/manual/mod/mod_cgi.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_cgi.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_cgid.html.en (+1/-1)
docs/manual/mod/mod_cgid.html.fr (+1/-1)
docs/manual/mod/mod_cgid.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_cgid.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_charset_lite.html.en (+1/-1)
docs/manual/mod/mod_charset_lite.html.fr (+1/-1)
docs/manual/mod/mod_charset_lite.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_data.html.en (+1/-1)
docs/manual/mod/mod_data.html.fr (+1/-1)
docs/manual/mod/mod_dav.html.en (+1/-1)
docs/manual/mod/mod_dav.html.fr (+1/-1)
docs/manual/mod/mod_dav.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_dav.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_dav_fs.html.en (+1/-1)
docs/manual/mod/mod_dav_fs.html.fr (+1/-1)
docs/manual/mod/mod_dav_fs.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_dav_fs.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_dav_lock.html.en (+1/-1)
docs/manual/mod/mod_dav_lock.html.fr (+1/-1)
docs/manual/mod/mod_dav_lock.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_dbd.html.en (+1/-1)
docs/manual/mod/mod_dbd.html.fr (+1/-1)
docs/manual/mod/mod_deflate.html.en (+1/-1)
docs/manual/mod/mod_deflate.html.fr (+1/-1)
docs/manual/mod/mod_deflate.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_deflate.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_dialup.html.en (+1/-1)
docs/manual/mod/mod_dialup.html.fr (+1/-1)
docs/manual/mod/mod_dir.html.en (+1/-1)
docs/manual/mod/mod_dir.html.fr (+1/-1)
docs/manual/mod/mod_dir.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_dir.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_dir.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_dumpio.html.en (+1/-1)
docs/manual/mod/mod_dumpio.html.fr (+1/-1)
docs/manual/mod/mod_dumpio.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_echo.html.en (+1/-1)
docs/manual/mod/mod_echo.html.fr (+1/-1)
docs/manual/mod/mod_echo.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_echo.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_env.html.en (+1/-1)
docs/manual/mod/mod_env.html.fr (+1/-1)
docs/manual/mod/mod_env.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_env.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_env.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_example_hooks.html.en (+1/-1)
docs/manual/mod/mod_example_hooks.html.fr (+1/-1)
docs/manual/mod/mod_example_hooks.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_expires.html.en (+1/-1)
docs/manual/mod/mod_expires.html.fr (+1/-1)
docs/manual/mod/mod_expires.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_expires.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_ext_filter.html.en (+2/-2)
docs/manual/mod/mod_ext_filter.html.fr (+2/-2)
docs/manual/mod/mod_ext_filter.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_ext_filter.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_file_cache.html.en (+1/-1)
docs/manual/mod/mod_file_cache.html.fr (+1/-1)
docs/manual/mod/mod_file_cache.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_filter.html.en (+5/-5)
docs/manual/mod/mod_filter.html.fr (+5/-5)
docs/manual/mod/mod_headers.html.en (+1/-1)
docs/manual/mod/mod_headers.html.fr (+1/-1)
docs/manual/mod/mod_headers.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_headers.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_heartbeat.html.en (+1/-1)
docs/manual/mod/mod_heartbeat.html.fr (+1/-1)
docs/manual/mod/mod_heartmonitor.html.en (+1/-1)
docs/manual/mod/mod_heartmonitor.html.fr (+1/-1)
docs/manual/mod/mod_http2.html.en (+1/-1)
docs/manual/mod/mod_ident.html.en (+1/-1)
docs/manual/mod/mod_ident.html.fr (+1/-1)
docs/manual/mod/mod_ident.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_ident.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_imagemap.html.en (+1/-1)
docs/manual/mod/mod_imagemap.html.fr (+1/-1)
docs/manual/mod/mod_imagemap.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_include.html.en (+1/-1)
docs/manual/mod/mod_include.html.fr (+1/-1)
docs/manual/mod/mod_include.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_info.html.en (+1/-1)
docs/manual/mod/mod_info.html.fr (+1/-1)
docs/manual/mod/mod_info.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_info.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_isapi.html.en (+1/-1)
docs/manual/mod/mod_isapi.html.fr (+1/-1)
docs/manual/mod/mod_isapi.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_lbmethod_bybusyness.html.en (+1/-1)
docs/manual/mod/mod_lbmethod_bybusyness.html.fr (+1/-1)
docs/manual/mod/mod_lbmethod_byrequests.html.en (+1/-1)
docs/manual/mod/mod_lbmethod_byrequests.html.fr (+1/-1)
docs/manual/mod/mod_lbmethod_bytraffic.html.en (+1/-1)
docs/manual/mod/mod_lbmethod_bytraffic.html.fr (+1/-1)
docs/manual/mod/mod_lbmethod_heartbeat.html.en (+1/-1)
docs/manual/mod/mod_lbmethod_heartbeat.html.fr (+1/-1)
docs/manual/mod/mod_ldap.html.en (+1/-1)
docs/manual/mod/mod_ldap.html.fr (+1/-1)
docs/manual/mod/mod_log_config.html.en (+1/-1)
docs/manual/mod/mod_log_config.html.fr (+1/-1)
docs/manual/mod/mod_log_config.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_log_config.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_log_config.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_log_debug.html.en (+2/-2)
docs/manual/mod/mod_log_debug.html.fr (+2/-2)
docs/manual/mod/mod_log_forensic.html.en (+1/-1)
docs/manual/mod/mod_log_forensic.html.fr (+1/-1)
docs/manual/mod/mod_log_forensic.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_log_forensic.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_logio.html.en (+2/-2)
docs/manual/mod/mod_logio.html.fr (+4/-2)
docs/manual/mod/mod_logio.html.ja.utf8 (+2/-2)
docs/manual/mod/mod_logio.html.ko.euc-kr (+2/-2)
docs/manual/mod/mod_logio.html.tr.utf8 (+2/-2)
docs/manual/mod/mod_lua.html.en (+1/-1)
docs/manual/mod/mod_lua.html.fr (+1/-1)
docs/manual/mod/mod_macro.html.en (+1/-1)
docs/manual/mod/mod_macro.html.fr (+1/-1)
docs/manual/mod/mod_md.html (+5/-0)
docs/manual/mod/mod_md.html.en (+657/-0)
docs/manual/mod/mod_mime.html.en (+2/-2)
docs/manual/mod/mod_mime.html.fr (+1/-1)
docs/manual/mod/mod_mime.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_mime_magic.html.en (+1/-1)
docs/manual/mod/mod_mime_magic.html.fr (+1/-1)
docs/manual/mod/mod_negotiation.html.en (+1/-1)
docs/manual/mod/mod_negotiation.html.fr (+1/-1)
docs/manual/mod/mod_negotiation.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_nw_ssl.html.en (+1/-1)
docs/manual/mod/mod_nw_ssl.html.fr (+1/-1)
docs/manual/mod/mod_privileges.html.en (+1/-1)
docs/manual/mod/mod_privileges.html.fr (+1/-1)
docs/manual/mod/mod_proxy.html.en (+2/-2)
docs/manual/mod/mod_proxy.html.fr (+3/-2)
docs/manual/mod/mod_proxy.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_proxy_ajp.html.en (+1/-1)
docs/manual/mod/mod_proxy_ajp.html.fr (+1/-1)
docs/manual/mod/mod_proxy_ajp.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_proxy_balancer.html.en (+1/-1)
docs/manual/mod/mod_proxy_balancer.html.fr (+1/-1)
docs/manual/mod/mod_proxy_balancer.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_proxy_connect.html.en (+1/-1)
docs/manual/mod/mod_proxy_connect.html.fr (+1/-1)
docs/manual/mod/mod_proxy_connect.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_proxy_express.html.en (+1/-1)
docs/manual/mod/mod_proxy_express.html.fr (+1/-1)
docs/manual/mod/mod_proxy_fcgi.html.en (+26/-1)
docs/manual/mod/mod_proxy_fcgi.html.fr (+29/-1)
docs/manual/mod/mod_proxy_fdpass.html.en (+1/-1)
docs/manual/mod/mod_proxy_fdpass.html.fr (+1/-1)
docs/manual/mod/mod_proxy_ftp.html.en (+1/-1)
docs/manual/mod/mod_proxy_ftp.html.fr (+1/-1)
docs/manual/mod/mod_proxy_hcheck.html.en (+1/-1)
docs/manual/mod/mod_proxy_html.html.en (+25/-25)
docs/manual/mod/mod_proxy_html.html.fr (+24/-24)
docs/manual/mod/mod_proxy_http.html.en (+1/-1)
docs/manual/mod/mod_proxy_http.html.fr (+1/-1)
docs/manual/mod/mod_proxy_http2.html.en (+1/-1)
docs/manual/mod/mod_proxy_scgi.html.en (+1/-1)
docs/manual/mod/mod_proxy_scgi.html.fr (+1/-1)
docs/manual/mod/mod_proxy_uwsgi.html (+5/-0)
docs/manual/mod/mod_proxy_uwsgi.html.en (+110/-0)
docs/manual/mod/mod_proxy_wstunnel.html.en (+1/-1)
docs/manual/mod/mod_ratelimit.html.en (+1/-1)
docs/manual/mod/mod_ratelimit.html.fr (+1/-1)
docs/manual/mod/mod_reflector.html.en (+1/-1)
docs/manual/mod/mod_reflector.html.fr (+1/-1)
docs/manual/mod/mod_remoteip.html.en (+81/-1)
docs/manual/mod/mod_remoteip.html.fr (+88/-8)
docs/manual/mod/mod_reqtimeout.html.en (+1/-1)
docs/manual/mod/mod_reqtimeout.html.fr (+1/-1)
docs/manual/mod/mod_request.html.en (+1/-1)
docs/manual/mod/mod_request.html.fr (+1/-1)
docs/manual/mod/mod_request.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_rewrite.html.en (+1/-1)
docs/manual/mod/mod_rewrite.html.fr (+1/-1)
docs/manual/mod/mod_sed.html.en (+1/-5)
docs/manual/mod/mod_sed.html.fr (+1/-6)
docs/manual/mod/mod_session.html.en (+1/-1)
docs/manual/mod/mod_session.html.fr (+1/-1)
docs/manual/mod/mod_session_cookie.html.en (+1/-1)
docs/manual/mod/mod_session_cookie.html.fr (+1/-1)
docs/manual/mod/mod_session_crypto.html.en (+1/-1)
docs/manual/mod/mod_session_crypto.html.fr (+1/-1)
docs/manual/mod/mod_session_dbd.html.en (+1/-1)
docs/manual/mod/mod_session_dbd.html.fr (+1/-1)
docs/manual/mod/mod_setenvif.html.en (+1/-1)
docs/manual/mod/mod_setenvif.html.fr (+1/-1)
docs/manual/mod/mod_setenvif.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_setenvif.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_setenvif.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_slotmem_plain.html.en (+1/-1)
docs/manual/mod/mod_slotmem_plain.html.fr (+1/-1)
docs/manual/mod/mod_slotmem_shm.html.en (+1/-1)
docs/manual/mod/mod_slotmem_shm.html.fr (+1/-1)
docs/manual/mod/mod_so.html.en (+1/-1)
docs/manual/mod/mod_so.html.fr (+1/-1)
docs/manual/mod/mod_so.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_so.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_so.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_socache_dbm.html.en (+1/-1)
docs/manual/mod/mod_socache_dbm.html.fr (+1/-1)
docs/manual/mod/mod_socache_dc.html.en (+1/-1)
docs/manual/mod/mod_socache_dc.html.fr (+1/-1)
docs/manual/mod/mod_socache_memcache.html.en (+1/-1)
docs/manual/mod/mod_socache_memcache.html.fr (+1/-1)
docs/manual/mod/mod_socache_shmcb.html.en (+1/-1)
docs/manual/mod/mod_socache_shmcb.html.fr (+1/-1)
docs/manual/mod/mod_speling.html.en (+1/-1)
docs/manual/mod/mod_speling.html.fr (+1/-1)
docs/manual/mod/mod_speling.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_speling.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_ssl.html.en (+24/-23)
docs/manual/mod/mod_ssl.html.fr (+24/-24)
docs/manual/mod/mod_status.html.en (+1/-1)
docs/manual/mod/mod_status.html.fr (+1/-1)
docs/manual/mod/mod_status.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_status.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_status.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_substitute.html.en (+13/-4)
docs/manual/mod/mod_substitute.html.fr (+12/-4)
docs/manual/mod/mod_suexec.html.en (+1/-1)
docs/manual/mod/mod_suexec.html.fr (+1/-1)
docs/manual/mod/mod_suexec.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_suexec.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_suexec.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_unique_id.html.en (+1/-1)
docs/manual/mod/mod_unique_id.html.fr (+1/-1)
docs/manual/mod/mod_unique_id.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_unique_id.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_unixd.html.en (+1/-1)
docs/manual/mod/mod_unixd.html.fr (+1/-1)
docs/manual/mod/mod_unixd.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_userdir.html.en (+1/-1)
docs/manual/mod/mod_userdir.html.fr (+1/-1)
docs/manual/mod/mod_userdir.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_userdir.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_userdir.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_usertrack.html.en (+1/-1)
docs/manual/mod/mod_usertrack.html.fr (+1/-1)
docs/manual/mod/mod_version.html.en (+1/-1)
docs/manual/mod/mod_version.html.ja.utf8 (+1/-1)
docs/manual/mod/mod_version.html.ko.euc-kr (+1/-1)
docs/manual/mod/mod_vhost_alias.html.en (+1/-1)
docs/manual/mod/mod_vhost_alias.html.fr (+1/-1)
docs/manual/mod/mod_vhost_alias.html.tr.utf8 (+1/-1)
docs/manual/mod/mod_watchdog.html.en (+1/-1)
docs/manual/mod/mod_xml2enc.html.en (+1/-1)
docs/manual/mod/mod_xml2enc.html.fr (+1/-1)
docs/manual/mod/module-dict.html.en (+1/-1)
docs/manual/mod/module-dict.html.fr (+1/-1)
docs/manual/mod/module-dict.html.ja.utf8 (+1/-1)
docs/manual/mod/module-dict.html.ko.euc-kr (+1/-1)
docs/manual/mod/module-dict.html.tr.utf8 (+1/-1)
docs/manual/mod/mpm_common.html.de (+1/-1)
docs/manual/mod/mpm_common.html.en (+1/-1)
docs/manual/mod/mpm_common.html.fr (+1/-1)
docs/manual/mod/mpm_common.html.ja.utf8 (+1/-1)
docs/manual/mod/mpm_common.html.tr.utf8 (+28/-2)
docs/manual/mod/mpm_netware.html.en (+1/-1)
docs/manual/mod/mpm_netware.html.fr (+1/-1)
docs/manual/mod/mpm_winnt.html.de (+1/-1)
docs/manual/mod/mpm_winnt.html.en (+1/-1)
docs/manual/mod/mpm_winnt.html.fr (+1/-1)
docs/manual/mod/mpm_winnt.html.ja.utf8 (+1/-1)
docs/manual/mod/mpmt_os2.html.en (+1/-1)
docs/manual/mod/mpmt_os2.html.fr (+1/-1)
docs/manual/mod/overrides.html.en (+65/-101)
docs/manual/mod/prefork.html.de (+1/-1)
docs/manual/mod/prefork.html.en (+1/-1)
docs/manual/mod/prefork.html.fr (+1/-1)
docs/manual/mod/prefork.html.ja.utf8 (+1/-1)
docs/manual/mod/prefork.html.tr.utf8 (+1/-1)
docs/manual/mod/quickreference.html.de (+35/-14)
docs/manual/mod/quickreference.html.en (+47/-26)
docs/manual/mod/quickreference.html.es (+35/-14)
docs/manual/mod/quickreference.html.fr (+37/-15)
docs/manual/mod/quickreference.html.ja.utf8 (+35/-14)
docs/manual/mod/quickreference.html.ko.euc-kr (+35/-14)
docs/manual/mod/quickreference.html.tr.utf8 (+37/-16)
docs/manual/mod/quickreference.html.zh-cn.utf8 (+35/-14)
docs/manual/mod/worker.html.de (+1/-1)
docs/manual/mod/worker.html.en (+1/-1)
docs/manual/mod/worker.html.fr (+1/-1)
docs/manual/mod/worker.html.ja.utf8 (+1/-1)
docs/manual/mod/worker.html.tr.utf8 (+1/-1)
docs/manual/mpm.html.de (+1/-1)
docs/manual/mpm.html.en (+1/-1)
docs/manual/mpm.html.es (+1/-1)
docs/manual/mpm.html.fr (+1/-1)
docs/manual/mpm.html.ja.utf8 (+1/-1)
docs/manual/mpm.html.ko.euc-kr (+1/-1)
docs/manual/mpm.html.tr.utf8 (+1/-1)
docs/manual/mpm.html.zh-cn.utf8 (+1/-1)
docs/manual/new_features_2_0.html.de (+1/-1)
docs/manual/new_features_2_0.html.en (+1/-1)
docs/manual/new_features_2_0.html.fr (+1/-1)
docs/manual/new_features_2_0.html.ja.utf8 (+1/-1)
docs/manual/new_features_2_0.html.ko.euc-kr (+1/-1)
docs/manual/new_features_2_0.html.pt-br (+1/-1)
docs/manual/new_features_2_0.html.ru.koi8-r (+1/-1)
docs/manual/new_features_2_0.html.tr.utf8 (+1/-1)
docs/manual/new_features_2_2.html.en (+1/-1)
docs/manual/new_features_2_2.html.fr (+1/-1)
docs/manual/new_features_2_2.html.ko.euc-kr (+1/-1)
docs/manual/new_features_2_2.html.pt-br (+1/-1)
docs/manual/new_features_2_2.html.tr.utf8 (+1/-1)
docs/manual/new_features_2_4.html.en (+1/-1)
docs/manual/new_features_2_4.html.fr (+1/-1)
docs/manual/new_features_2_4.html.tr.utf8 (+1/-1)
docs/manual/platform/ebcdic.html.en (+1/-1)
docs/manual/platform/ebcdic.html.ko.euc-kr (+1/-1)
docs/manual/platform/index.html.en (+1/-1)
docs/manual/platform/index.html.fr (+1/-1)
docs/manual/platform/index.html.ko.euc-kr (+1/-1)
docs/manual/platform/index.html.zh-cn.utf8 (+1/-1)
docs/manual/platform/netware.html.en (+1/-1)
docs/manual/platform/netware.html.fr (+1/-1)
docs/manual/platform/netware.html.ko.euc-kr (+1/-1)
docs/manual/platform/perf-hp.html.en (+1/-1)
docs/manual/platform/perf-hp.html.fr (+1/-1)
docs/manual/platform/perf-hp.html.ko.euc-kr (+1/-1)
docs/manual/platform/rpm.html.en (+1/-1)
docs/manual/platform/win_compiling.html.en (+1/-1)
docs/manual/platform/win_compiling.html.fr (+1/-1)
docs/manual/platform/win_compiling.html.ko.euc-kr (+1/-1)
docs/manual/platform/windows.html.en (+1/-1)
docs/manual/platform/windows.html.fr (+1/-1)
docs/manual/platform/windows.html.ko.euc-kr (+1/-1)
docs/manual/programs/ab.html.en (+1/-1)
docs/manual/programs/ab.html.fr (+1/-1)
docs/manual/programs/ab.html.ko.euc-kr (+1/-1)
docs/manual/programs/ab.html.tr.utf8 (+1/-1)
docs/manual/programs/apachectl.html.en (+1/-1)
docs/manual/programs/apachectl.html.fr (+1/-1)
docs/manual/programs/apachectl.html.ko.euc-kr (+1/-1)
docs/manual/programs/apachectl.html.tr.utf8 (+1/-1)
docs/manual/programs/apxs.html.en (+1/-1)
docs/manual/programs/apxs.html.fr (+1/-1)
docs/manual/programs/apxs.html.ko.euc-kr (+1/-1)
docs/manual/programs/apxs.html.tr.utf8 (+1/-1)
docs/manual/programs/configure.html.en (+1/-1)
docs/manual/programs/configure.html.fr (+1/-1)
docs/manual/programs/configure.html.ko.euc-kr (+1/-1)
docs/manual/programs/configure.html.tr.utf8 (+1/-1)
docs/manual/programs/dbmmanage.html.en (+1/-1)
docs/manual/programs/dbmmanage.html.fr (+1/-1)
docs/manual/programs/dbmmanage.html.ko.euc-kr (+1/-1)
docs/manual/programs/dbmmanage.html.tr.utf8 (+1/-1)
docs/manual/programs/fcgistarter.html.en (+1/-1)
docs/manual/programs/fcgistarter.html.fr (+1/-1)
docs/manual/programs/fcgistarter.html.tr.utf8 (+1/-1)
docs/manual/programs/htcacheclean.html.en (+1/-1)
docs/manual/programs/htcacheclean.html.fr (+1/-1)
docs/manual/programs/htcacheclean.html.ko.euc-kr (+1/-1)
docs/manual/programs/htcacheclean.html.tr.utf8 (+1/-1)
docs/manual/programs/htdbm.html.en (+1/-1)
docs/manual/programs/htdbm.html.fr (+1/-1)
docs/manual/programs/htdbm.html.tr.utf8 (+1/-1)
docs/manual/programs/htdigest.html.en (+1/-1)
docs/manual/programs/htdigest.html.fr (+1/-1)
docs/manual/programs/htdigest.html.ko.euc-kr (+1/-1)
docs/manual/programs/htdigest.html.tr.utf8 (+1/-1)
docs/manual/programs/htpasswd.html.en (+1/-1)
docs/manual/programs/htpasswd.html.fr (+1/-1)
docs/manual/programs/htpasswd.html.ko.euc-kr (+1/-1)
docs/manual/programs/htpasswd.html.tr.utf8 (+1/-1)
docs/manual/programs/httpd.html.en (+1/-1)
docs/manual/programs/httpd.html.fr (+1/-1)
docs/manual/programs/httpd.html.ko.euc-kr (+1/-1)
docs/manual/programs/httpd.html.tr.utf8 (+1/-1)
docs/manual/programs/httxt2dbm.html.en (+1/-1)
docs/manual/programs/httxt2dbm.html.fr (+1/-1)
docs/manual/programs/httxt2dbm.html.tr.utf8 (+1/-1)
docs/manual/programs/index.html.en (+1/-1)
docs/manual/programs/index.html.es (+1/-1)
docs/manual/programs/index.html.fr (+1/-1)
docs/manual/programs/index.html.ko.euc-kr (+1/-1)
docs/manual/programs/index.html.tr.utf8 (+1/-1)
docs/manual/programs/index.html.zh-cn.utf8 (+1/-1)
docs/manual/programs/log_server_status.html.en (+1/-1)
docs/manual/programs/logresolve.html.en (+1/-1)
docs/manual/programs/logresolve.html.fr (+1/-1)
docs/manual/programs/logresolve.html.ko.euc-kr (+1/-1)
docs/manual/programs/logresolve.html.tr.utf8 (+1/-1)
docs/manual/programs/other.html.en (+1/-1)
docs/manual/programs/other.html.fr (+1/-1)
docs/manual/programs/other.html.ko.euc-kr (+1/-1)
docs/manual/programs/other.html.tr.utf8 (+1/-1)
docs/manual/programs/rotatelogs.html.en (+1/-1)
docs/manual/programs/rotatelogs.html.fr (+1/-1)
docs/manual/programs/rotatelogs.html.ko.euc-kr (+1/-1)
docs/manual/programs/rotatelogs.html.tr.utf8 (+1/-1)
docs/manual/programs/split-logfile.html.en (+1/-1)
docs/manual/programs/suexec.html.en (+1/-1)
docs/manual/programs/suexec.html.ko.euc-kr (+1/-1)
docs/manual/programs/suexec.html.tr.utf8 (+1/-1)
docs/manual/rewrite/access.html.en (+1/-1)
docs/manual/rewrite/access.html.fr (+1/-1)
docs/manual/rewrite/advanced.html.en (+1/-1)
docs/manual/rewrite/advanced.html.fr (+1/-1)
docs/manual/rewrite/avoid.html.en (+1/-1)
docs/manual/rewrite/avoid.html.fr (+1/-1)
docs/manual/rewrite/flags.html.en (+1/-1)
docs/manual/rewrite/flags.html.fr (+1/-1)
docs/manual/rewrite/htaccess.html.en (+1/-1)
docs/manual/rewrite/htaccess.html.fr (+1/-1)
docs/manual/rewrite/index.html.en (+1/-1)
docs/manual/rewrite/index.html.fr (+1/-1)
docs/manual/rewrite/index.html.tr.utf8 (+1/-1)
docs/manual/rewrite/index.html.zh-cn.utf8 (+1/-1)
docs/manual/rewrite/intro.html.en (+1/-1)
docs/manual/rewrite/intro.html.fr (+1/-1)
docs/manual/rewrite/proxy.html.en (+1/-1)
docs/manual/rewrite/proxy.html.fr (+1/-1)
docs/manual/rewrite/remapping.html.en (+1/-1)
docs/manual/rewrite/remapping.html.fr (+1/-1)
docs/manual/rewrite/rewritemap.html.en (+1/-1)
docs/manual/rewrite/rewritemap.html.fr (+8/-4)
docs/manual/rewrite/tech.html.en (+1/-1)
docs/manual/rewrite/tech.html.fr (+1/-1)
docs/manual/rewrite/vhosts.html.en (+1/-1)
docs/manual/rewrite/vhosts.html.fr (+1/-1)
docs/manual/sections.html.en (+5/-5)
docs/manual/sections.html.fr (+2/-2)
docs/manual/sections.html.ja.utf8 (+1/-1)
docs/manual/sections.html.ko.euc-kr (+1/-1)
docs/manual/sections.html.tr.utf8 (+3/-2)
docs/manual/server-wide.html.en (+1/-1)
docs/manual/server-wide.html.fr (+1/-1)
docs/manual/server-wide.html.ja.utf8 (+1/-1)
docs/manual/server-wide.html.ko.euc-kr (+1/-1)
docs/manual/server-wide.html.tr.utf8 (+1/-1)
docs/manual/sitemap.html.de (+3/-1)
docs/manual/sitemap.html.en (+3/-1)
docs/manual/sitemap.html.es (+3/-1)
docs/manual/sitemap.html.fr (+3/-1)
docs/manual/sitemap.html.ja.utf8 (+3/-1)
docs/manual/sitemap.html.ko.euc-kr (+3/-1)
docs/manual/sitemap.html.tr.utf8 (+4/-2)
docs/manual/sitemap.html.zh-cn.utf8 (+3/-1)
docs/manual/socache.html.en (+1/-1)
docs/manual/socache.html.fr (+1/-1)
docs/manual/ssl/index.html.en (+1/-1)
docs/manual/ssl/index.html.fr (+1/-1)
docs/manual/ssl/index.html.ja.utf8 (+1/-1)
docs/manual/ssl/index.html.tr.utf8 (+1/-1)
docs/manual/ssl/index.html.zh-cn.utf8 (+1/-1)
docs/manual/ssl/ssl_compat.html.en (+1/-1)
docs/manual/ssl/ssl_compat.html.fr (+1/-1)
docs/manual/ssl/ssl_faq.html.en (+1/-1)
docs/manual/ssl/ssl_faq.html.fr (+1/-1)
docs/manual/ssl/ssl_howto.html.en (+1/-1)
docs/manual/ssl/ssl_howto.html.fr (+1/-1)
docs/manual/ssl/ssl_intro.html.en (+1/-1)
docs/manual/ssl/ssl_intro.html.fr (+1/-1)
docs/manual/ssl/ssl_intro.html.ja.utf8 (+1/-1)
docs/manual/stopping.html.de (+1/-1)
docs/manual/stopping.html.en (+1/-1)
docs/manual/stopping.html.es (+1/-1)
docs/manual/stopping.html.fr (+1/-1)
docs/manual/stopping.html.ja.utf8 (+1/-1)
docs/manual/stopping.html.ko.euc-kr (+1/-1)
docs/manual/stopping.html.tr.utf8 (+1/-1)
docs/manual/style/common.dtd (+5/-1)
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)
Conflict in debian/apache2.dirs
Conflict in debian/changelog
Conflict in debian/control
Conflict in debian/patches/series
Reviewer Review Type Date Requested Status
Canonical Server Pending
Canonical Server packageset reviewers Pending
Review via email: mp+345310@code.launchpad.net

Description of the change

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.

Unmerged commits

73a11ba... by Andreas Hasenack

update-maintainer

84a360f... by Andreas Hasenack

reconstruct-changelog

84be5b6... by Andreas Hasenack

merge-changelogs

13e587f... by Andreas Hasenack

  * Added changes:
    - disable the brotli module and remove build-depends on libbrotli-dev
      as this package is in universe

cc00e3e... by Andreas Hasenack

    - Avoid crashes, hangs and loops by fixing mod_ldap locking: (LP: #1752683)
      + added debian/patches/util_ldap_cache_lock_fix.patch
      [Already applied upstream]

16f4de4... by Andreas Hasenack

    - SECURITY UPDATE: insecure nonce generation
      + debian/patches/CVE-2018-1312.patch: actually use the secret when
        generating nonces in modules/aaa/mod_auth_digest.c.
      + CVE-2018-1312

383720d... by Andreas Hasenack

    - SECURITY UPDATE: mod_cache_socache DoS
      + debian/patches/CVE-2018-1303.patch: fix caching of empty headers up
        to carriage return in modules/cache/mod_cache_socache.c.
      + CVE-2018-1303

a5d3780... by Andreas Hasenack

    - SECURITY UPDATE: DoS via specially-crafted request
      + debian/patches/CVE-2018-1301.patch: ensure that read lines are NUL
        terminated on any error, not only on buffer full in
        server/protocol.c.
      + CVE-2018-1301

5bdef75... by Andreas Hasenack

    - SECURITY UPDATE: mod_session header manipulation
      + debian/patches/CVE-2018-1283.patch: strip Session header when
        SessionEnv is on in modules/session/mod_session.c.
      + CVE-2018-1283

0aec639... by Andreas Hasenack

    - SECURITY UPDATE: incorrect <FilesMatch> matching
      + debian/patches/CVE-2017-15715.patch: allow to configure
        global/default options for regexes, like caseless matching or
        extended format in include/ap_regex.h, server/core.c,
        server/util_pcre.c.
      + CVE-2017-15715

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/Apache-apr2.dsw b/Apache-apr2.dsw
2index c3f75e6..fe2f526 100644
3--- a/Apache-apr2.dsw
4+++ b/Apache-apr2.dsw
5@@ -291,6 +291,9 @@ Package=<4>
6 Project_Dep_Name mod_proxy_scgi
7 End Project Dependency
8 Begin Project Dependency
9+ Project_Dep_Name mod_proxy_uwsgi
10+ End Project Dependency
11+ Begin Project Dependency
12 Project_Dep_Name mod_proxy_wstunnel
13 End Project Dependency
14 Begin Project Dependency
15@@ -2086,6 +2089,24 @@ Package=<4>
16
17 ###############################################################################
18
19+Project: "mod_md"=.\modules\md\mod_md.dsp - Package Owner=<4>
20+
21+Package=<5>
22+{{{
23+}}}
24+
25+Package=<4>
26+{{{
27+ Begin Project Dependency
28+ Project_Dep_Name libapr
29+ End Project Dependency
30+ Begin Project Dependency
31+ Project_Dep_Name libhttpd
32+ End Project Dependency
33+}}}
34+
35+###############################################################################
36+
37 Project: "mod_mime"=.\modules\http\mod_mime.dsp - Package Owner=<4>
38
39 Package=<5>
40@@ -2305,7 +2326,6 @@ Package=<4>
41 }}}
42
43 ###############################################################################
44-###############################################################################
45
46 Project: "mod_proxy_html"=.\modules\filters\mod_proxy_html.dsp - Package Owner=<4>
47
48@@ -2389,6 +2409,26 @@ Package=<4>
49 End Project Dependency
50 }}}
51
52+###############################################################################
53+
54+Project: "mod_proxy_uwsgi"=.\modules\proxy\mod_proxy_uwsgi.dsp - Package Owner=<4>
55+
56+Package=<5>
57+{{{
58+}}}
59+
60+Package=<4>
61+{{{
62+ Begin Project Dependency
63+ Project_Dep_Name libapr
64+ End Project Dependency
65+ Begin Project Dependency
66+ Project_Dep_Name libhttpd
67+ End Project Dependency
68+ Begin Project Dependency
69+ Project_Dep_Name mod_proxy
70+ End Project Dependency
71+}}}
72
73 ###############################################################################
74
75diff --git a/Apache.dsw b/Apache.dsw
76index 30866bc..a0be3ae 100644
77--- a/Apache.dsw
78+++ b/Apache.dsw
79@@ -306,6 +306,9 @@ Package=<4>
80 Project_Dep_Name mod_proxy_scgi
81 End Project Dependency
82 Begin Project Dependency
83+ Project_Dep_Name mod_proxy_uwsgi
84+ End Project Dependency
85+ Begin Project Dependency
86 Project_Dep_Name mod_proxy_wstunnel
87 End Project Dependency
88 Begin Project Dependency
89@@ -2485,6 +2488,27 @@ Package=<4>
90
91 ###############################################################################
92
93+Project: "mod_md"=.\modules\md\mod_md.dsp - Package Owner=<4>
94+
95+Package=<5>
96+{{{
97+}}}
98+
99+Package=<4>
100+{{{
101+ Begin Project Dependency
102+ Project_Dep_Name libapr
103+ End Project Dependency
104+ Begin Project Dependency
105+ Project_Dep_Name libaprutil
106+ End Project Dependency
107+ Begin Project Dependency
108+ Project_Dep_Name libhttpd
109+ End Project Dependency
110+}}}
111+
112+###############################################################################
113+
114 Project: "mod_mime"=.\modules\http\mod_mime.dsp - Package Owner=<4>
115
116 Package=<5>
117@@ -2834,6 +2858,30 @@ Package=<4>
118
119 ###############################################################################
120
121+Project: "mod_proxy_uwsgi"=.\modules\proxy\mod_proxy_uwsgi.dsp - Package Owner=<4>
122+
123+Package=<5>
124+{{{
125+}}}
126+
127+Package=<4>
128+{{{
129+ Begin Project Dependency
130+ Project_Dep_Name libapr
131+ End Project Dependency
132+ Begin Project Dependency
133+ Project_Dep_Name libaprutil
134+ End Project Dependency
135+ Begin Project Dependency
136+ Project_Dep_Name libhttpd
137+ End Project Dependency
138+ Begin Project Dependency
139+ Project_Dep_Name mod_proxy
140+ End Project Dependency
141+}}}
142+
143+###############################################################################
144+
145 Project: "mod_proxy_wstunnel"=.\modules\proxy\mod_proxy_wstunnel.dsp - Package Owner=<4>
146
147 Package=<5>
148diff --git a/BuildBin.dsp b/BuildBin.dsp
149index 173cffb..1559664 100644
150--- a/BuildBin.dsp
151+++ b/BuildBin.dsp
152@@ -39,7 +39,7 @@ CFG=BuildBin - Win32 Debug
153 # PROP Use_Debug_Libraries 0
154 # PROP Output_Dir ""
155 # PROP Intermediate_Dir ""
156-# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2" LONG=Release _trydb _trylua _tryxml _tryssl _tryzlib _trynghttp2 _trybrotli _dummy"
157+# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2" LONG=Release _trydb _trylua _tryxml _tryssl _tryzlib _trynghttp2 _trybrotli _trymd _dummy"
158 # PROP Rebuild_Opt ""
159 # PROP Target_File "\Apache2\bin\httpd.exe"
160 # PROP Bsc_Name ".\Browse\httpd.bsc"
161@@ -58,7 +58,7 @@ CFG=BuildBin - Win32 Debug
162 # PROP Use_Debug_Libraries 1
163 # PROP Output_Dir ""
164 # PROP Intermediate_Dir ""
165-# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2" LONG=Debug _trydb _trylua _tryxml _tryssl _tryzlib _trynghttp2 _trybrotli _dummy"
166+# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2" LONG=Debug _trydb _trylua _tryxml _tryssl _tryzlib _trynghttp2 _trybrotli _trymd _dummy"
167 # PROP Rebuild_Opt ""
168 # PROP Target_File "\Apache2\bin\httpd.exe"
169 # PROP Bsc_Name ".\Browse\httpd.bsc"
170diff --git a/CHANGES b/CHANGES
171index ab0cd5d..5430153 100644
172--- a/CHANGES
173+++ b/CHANGES
174@@ -1,4 +1,195 @@
175 -*- coding: utf-8 -*-
176+Changes with Apache 2.4.33
177+
178+ *) core: Fix request timeout logging and possible crash for error_log hooks.
179+ [Yann Ylavic]
180+
181+ *) mod_slomem_shm: Fix failure to create balancers's slotmems in Windows MPM,
182+ where children processes need to attach them instead since they are owned
183+ by the parent process already. [Yann Ylavic]
184+
185+ *) ab: try all destination socket addresses returned by
186+ apr_sockaddr_info_get instead of failing on first one when not available.
187+ Needed for instance if localhost resolves to both ::1 and 127.0.0.1
188+ e.g. if both are in /etc/hosts. [Jan Kaluza]
189+
190+ *) ab: Use only one connection to determine working destination socket
191+ address. [Jan Kaluza]
192+
193+ *) ab: LibreSSL doesn't have or require Windows applink.c. [Gregg L. Smith]
194+
195+ *) htpasswd/htdigest: Disable support for bcrypt on EBCDIC platforms.
196+ apr-util's bcrypt implementation doesn't tolerate EBCDIC. [Eric Covener]
197+
198+ *) htpasswd/htdbm: report the right limit when get_password() overflows.
199+ [Yann Ylavic]
200+
201+ *) htpasswd: Don't fail in -v mode if password file is unwritable.
202+ PR 61631. [Joe Orton]
203+
204+ *) htpasswd: don't point to (unused) stack memory on output
205+ to make static analysers happy. PR 60634.
206+ [Yann Ylavic, reported by shqking and Zhenwei Zou]
207+
208+Changes with Apache 2.4.32
209+
210+ *) mod_access_compat: Fail if a comment is found in an Allow or Deny
211+ directive. [Jan Kaluza]
212+
213+ *) mod_authz_host: Ignore comments after "Require host", logging a
214+ warning, or logging an error if the line is otherwise empty.
215+ [Jan Kaluza, Joe Orton]
216+
217+ *) rotatelogs: Fix expansion of %Z in localtime (-l) mode, and fix
218+ Y2K38 bug. [Joe Orton]
219+
220+ *) mod_ssl: Support SSL DN raw variable extraction without conversion
221+ to UTF-8, using _RAW suffix on variable names. [Joe Orton]
222+
223+ *) ab: Fix https:// connection failures (regression in 2.4.30); fix
224+ crash generating CSV output for large -n. [Joe Orton, Jan Kaluza]
225+
226+Changes with Apache 2.4.31
227+
228+ *) mod_proxy_fcgi: Add the support for mod_proxy's flushpackets and flushwait
229+ parameters. [Luca Toscano, Ruediger Pluem, Yann Ylavic]
230+
231+ *) mod_ldap: Avoid possible crashes, hangs, and busy loops due to
232+ improper merging of the cache lock in vhost config.
233+ PR 43164 [Eric Covener]
234+
235+ *) mpm_event: Do lingering close in worker(s). [Yann Ylavic]
236+
237+ *) mpm_queue: Put fdqueue code in common for MPMs event and worker.
238+ [Yann Ylavic]
239+
240+Changes with Apache 2.4.30
241+
242+ *) mod_session: Strip Session header when SessionEnv is on. [Yann Ylavic]
243+
244+ *) mod_cache_socache: Fix caching of empty headers up to carriage return.
245+ [Yann Ylavic]
246+
247+ *) core: For consistency, ensure that read lines are NUL terminated on any
248+ error, not only on buffer full. [Yann Ylavic]
249+
250+ *) mod_authnz_ldap: Fix language long names detection as short name.
251+ [Yann Ylavic]
252+
253+ *) mod_proxy: Worker schemes and hostnames which are too large are no
254+ longer fatal errors; it is logged and the truncated values are stored.
255+ [Jim Jagielski]
256+
257+ *) regex: Allow to configure global/default options for regexes, like
258+ caseless matching or extended format. [Yann Ylavic]
259+
260+ *) mod_auth_digest: Actually use the secret when generating nonces. This change
261+ may cause problems if used with round robin load balancers. PR 54637
262+ [Stefan Fritsch]
263+
264+ *) mod_proxy: Allow setting options to globally defined balancer from
265+ ProxyPass used in VirtualHost. Balancers are now merged using the new
266+ merge_balancers method which merges the balancers options. [Jan Kaluza]
267+
268+ *) logresolve: Fix incorrect behavior or segfault if -c flag is used
269+ Fixes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823259
270+ [Stefan Fritsch]
271+
272+ *) mod_remoteip: Add support for PROXY protocol (code donated by Cloudzilla).
273+ Add ability for PROXY protocol processing to be optional to donated code.
274+ See also: http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt
275+ [Cloudzilla/roadrunner2@GitHub, Jim Jagielski, Daniel Ruggeri]
276+
277+ *) mod_proxy, mod_ssl: Handle SSLProxy* directives in <Proxy> sections,
278+ allowing per backend TLS configuration. [Yann Ylavic]
279+
280+ *) mod_proxy_uwsgi: Add in UWSGI proxy (sub)module. [Roberto De Ioris,
281+ Jim Jagielski]
282+
283+ *) mod_proxy_balancer,mod_slotmem_shm: Rework SHM reuse/deletion to not
284+ depend on the number of restarts (non-Unix systems) and preserve shared
285+ names as much as possible on configuration changes for SHMs and persisted
286+ files. PR 62044. [Yann Ylavic, Jim Jagielski]
287+
288+ *) mod_http2: obsolete code removed, no more events on beam pool destruction,
289+ discourage content encoders on http2-status response (where they do not work).
290+ [Stefan Eissing]
291+
292+ *) mpm_event: Let the listener thread do its maintenance job on resources
293+ shortage. PR 61979. [Yann Ylavic]
294+
295+ *) mpm_event: Wakeup the listener to re-enable listening sockets.
296+ [Yann Ylavic]
297+
298+ *) mod_ssl: The SSLCompression directive will now give an error if used
299+ with an OpenSSL build which does not support any compression methods.
300+ [Joe Orton]
301+
302+ *) mpm_event,worker: Mask signals for threads created by modules in child
303+ init, so that they don't receive (implicitely) the ones meant for the MPM.
304+ PR 62009. [Armin Abfalterer <a.abfalterer gmail com>, Yann Ylavic]
305+
306+ *) mod_md: new experimental, module for managing domains across virtual hosts,
307+ implementing the Let's Encrypt ACMEv1 protocol to signup and renew
308+ certificates. Please read the modules documentation for further instructions
309+ on how to use it. [Stefan Eissing]
310+
311+ *) mod_proxy_html: skip documents shorter than 4 bytes
312+ PR 56286 [Micha Lenk <micha lenk info>]
313+
314+ *) core, mpm_event: Avoid a small memory leak of the scoreboard handle, for
315+ the lifetime of the connection, each time it is processed by MPM event.
316+ [Yann Ylavic]
317+
318+ *) mpm_event: Update scoreboard status for KeepAlive state. [Yann Ylavic]
319+
320+ *) mod_ldap: Fix a case where a full LDAP cache would continually fail to
321+ purge old entries and log AH01323. PR61891.
322+ [Hendrik Harms <hendrik.harms gmail.com>]
323+
324+ *) mpm_event: close connections not reported as handled by any module to
325+ avoid losing track of them and leaking scoreboard entries. PR 61551.
326+ [Yann Ylavic]
327+
328+ *) core: A signal received while stopping could have crashed the main
329+ process. PR 61558. [Yann Ylavic]
330+
331+ *) mod_ssl: support for mod_md added. [Stefan Eissing]
332+
333+ *) mod_proxy_html: process parsed comments immediately.
334+ Fixes bug (seen in the wild when used with IBM's HTTPD bundle)
335+ where parsed comments may be lost. [Nick Kew]
336+
337+ *) mod_proxy_html: introduce doctype for HTML 5 [Nick Kew]
338+
339+ *) mod_proxy_html: fix typo-bug processing "strict" vs "transitional"
340+ HTML/XHTML. PR 56457 [Nick Kew]
341+
342+ *) mpm_event: avoid a very unlikely race condition between the listener and
343+ the workers when the latter fails to add a connection to the pollset.
344+ [Yann Ylavic]
345+
346+ *) core: silently ignore a not existent file path when IncludeOptional
347+ is used. PR 57585. [Alberto Murillo Silva <powerbsd yahoo.com>, Luca Toscano]
348+
349+ *) mod_macro: fix usability of globally defined macros in .htaccess files.
350+ PR 57525. [Jose Kahan <jose w3.org>, Yann Ylavic]
351+
352+ *) mod_rewrite, core: add the Vary header when a condition evaluates to true
353+ and the related RewriteRule is used in a Directory context
354+ (triggering an internal redirect). [Luca Toscano]
355+
356+ *) ab: Make the TLS layer aware that the underlying socket is nonblocking,
357+ and use/handle POLLOUT where needed to avoid busy IOs and recover write
358+ errors when appropriate. [Yann Ylavic]
359+
360+ *) ab: Keep reading nonblocking to exhaust TCP or SSL buffers when previous
361+ read was incomplete (the SSL case can cause the next poll() to timeout
362+ since data are buffered already). PR 61301 [Luca Toscano, Yann Ylavic]
363+
364+ *) mod_http2: avoid unnecessary data retrieval for a trace log. Allow certain
365+ information retrievals on null bucket beams where it makes sense. [Stefan Eissing]
366+
367 Changes with Apache 2.4.29
368
369 *) mod_unique_id: Use output of the PRNG rather than IP address and
370@@ -6,7 +197,7 @@ Changes with Apache 2.4.29
371 plus improving randomness for IPv6-only hosts. [Jan Kaluza]
372
373 *) mod_rewrite, core: Avoid the 'Vary: Host' response header when HTTP_HOST
374- is used in a condition that evaluates to true. PR 58231 [Luca Toscano]
375+ is used in a condition that evaluates to true. PR 58231 [Luca Toscano, Yann Ylavic]
376
377 *) mod_http2: v0.10.12, removed optimization for mutex handling in bucket
378 beams that could lead to assertion failure in edge cases.
379@@ -411,6 +602,9 @@ Changes with Apache 2.4.24 (not released)
380 *) mod_socache_memcache: Provide memcache stats to mod_status.
381 [Jim Jagielski]
382
383+ *) mod_file_cache: mod_file_cache should be able to serve files that
384+ haven't had a Content-Type set via e.g. mod_mime. [Eric Covener]
385+
386 *) http_filters: Fix potential looping in new check_headers() due to new
387 pattern of ap_die() from http header filter. Explicitly clear the
388 previous headers and body.
389@@ -441,7 +635,7 @@ Changes with Apache 2.4.24 (not released)
390 *) core: New directive RegisterHttpMethod for registering non-standard
391 HTTP methods. [Stefan Fritsch]
392
393- *) mod_socache_memcache: Pass expiration time through to memcached.
394+ *) mod_socache_memcache: Pass expiration time through to memcached. PR 55445.
395 [Faidon Liambotis <paravoid debian.org>, Joe Orton]
396
397 *) mod_cache: Use the actual URI path and query-string for identifying the
398@@ -638,6 +832,9 @@ Changes with Apache 2.4.22
399
400 Changes with Apache 2.4.21
401
402+ *) core: Added support for HTTP code 451. PR 58985.
403+ [Yehuda Katz <yehuda ymkatz.net>, Jim Jagielski]
404+
405 *) ab: Use caseless matching for HTTP tokens (e.g. content-length). PR 59111.
406 [Yann Ylavic]
407
408diff --git a/CMakeLists.txt b/CMakeLists.txt
409index 3cd8a34..a571061 100644
410--- a/CMakeLists.txt
411+++ b/CMakeLists.txt
412@@ -619,6 +619,7 @@ SET(LIBHTTPD_SOURCES
413 server/util.c
414 server/util_cfgtree.c
415 server/util_cookies.c
416+ server/util_debug.c
417 server/util_expr_eval.c
418 server/util_expr_parse.c
419 server/util_fcgi.c
420diff --git a/LICENSE b/LICENSE
421index de66166..0d72de2 100644
422--- a/LICENSE
423+++ b/LICENSE
424@@ -322,6 +322,40 @@ For the server\util_md5.c component:
425 * WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
426 */
427
428+
429+For the util_pcre.c and ap_regex.h components:
430+
431+ Copyright (c) 1997-2004 University of Cambridge
432+
433+-----------------------------------------------------------------------------
434+Redistribution and use in source and binary forms, with or without
435+modification, are permitted provided that the following conditions are met:
436+
437+ * Redistributions of source code must retain the above copyright notice,
438+ this list of conditions and the following disclaimer.
439+
440+ * Redistributions in binary form must reproduce the above copyright
441+ notice, this list of conditions and the following disclaimer in the
442+ documentation and/or other materials provided with the distribution.
443+
444+ * Neither the name of the University of Cambridge nor the names of its
445+ contributors may be used to endorse or promote products derived from
446+ this software without specific prior written permission.
447+
448+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
449+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
450+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
451+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
452+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
453+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
454+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
455+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
456+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
457+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
458+POSSIBILITY OF SUCH DAMAGE.
459+-----------------------------------------------------------------------------
460+
461+
462 For the srclib\apr\include\apr_md5.h component:
463 /*
464 * This is work is derived from material Copyright RSA Data Security, Inc.
465diff --git a/Makefile.win b/Makefile.win
466index 3444cca..afe7b2d 100644
467--- a/Makefile.win
468+++ b/Makefile.win
469@@ -295,6 +295,30 @@ _trybrotli:
470
471 !ENDIF
472
473+!IF EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
474+
475+_trymd:
476+!IF $(USEMAK) == 1
477+ cd modules\md
478+ $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_md.mak CFG="mod_md - Win32 $(LONG)" RECURSE=0 $(CTARGET)
479+ cd ..\..
480+!ELSEIF $(USESLN) == 1
481+ devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_md
482+!ELSE
483+ @msdev $(TLP).dsw /USEENV /MAKE \
484+ "mod_md - Win32 $(LONG)" /NORECURSE $(CTARGET)
485+!ENDIF
486+
487+!ELSE
488+# NOT EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
489+
490+_trymd:
491+ @echo -----
492+ @echo mod_md will not build unless OpenSSL, Jansson and Curl are built and placed
493+ @echo in srclib. Example: srclib/openssl, srclib/jansson and srclib/curl
494+
495+!ENDIF
496+
497 _trydb:
498 !IF $(USEMAK) == 1
499 cd srclib\$(UTILDIR)\dbd
500@@ -586,6 +610,11 @@ _build:
501 $(MAKE) $(MAKEOPT) -f mod_userdir.mak CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
502 $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
503 cd ..\..
504+!IF EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
505+ cd modules\md
506+ $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_md.mak CFG="mod_md - Win32 $(LONG)" RECURSE=0 $(CTARGET)
507+ cd ..\..
508+!ENDIF
509 cd modules\metadata
510 $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
511 $(MAKE) $(MAKEOPT) -f mod_env.mak CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
512@@ -610,6 +639,7 @@ _build:
513 $(MAKE) $(MAKEOPT) -f mod_proxy_hcheck.mak CFG="mod_proxy_hcheck - Win32 $(LONG)" RECURSE=0 $(CTARGET)
514 $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
515 $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
516+ $(MAKE) $(MAKEOPT) -f mod_proxy_uwsgi.mak CFG="mod_proxy_uwsgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
517 $(MAKE) $(MAKEOPT) -f mod_proxy_wstunnel.mak CFG="mod_proxy_wstunnel - Win32 $(LONG)" RECURSE=0 $(CTARGET)
518 cd ..\..
519 cd modules\proxy\balancers
520@@ -871,6 +901,16 @@ _copybin:
521 copy modules\mappers\$(LONG)\mod_speling.$(src_so) "$(inst_so)" <.y
522 copy modules\mappers\$(LONG)\mod_userdir.$(src_so) "$(inst_so)" <.y
523 copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so) "$(inst_so)" <.y
524+!IF EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
525+ copy modules\md\$(LONG)\mod_md.$(src_so) "$(inst_so)" <.y
526+!IF "$(SHORT)" == "D"
527+ -copy srclib\curl\bin\libcurl_debug.$(src_dll) "$(inst_dll)" <.y
528+ -copy srclib\jansson\bin\jansson_d.$(src_dll) "$(inst_dll)" <.y
529+!ELSE
530+ -copy srclib\curl\bin\libcurl.$(src_dll) "$(inst_dll)" <.y
531+ -copy srclib\jansson\bin\jansson.$(src_dll) "$(inst_dll)" <.y
532+!ENDIF
533+!ENDIF
534 copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so) "$(inst_so)" <.y
535 copy modules\metadata\$(LONG)\mod_env.$(src_so) "$(inst_so)" <.y
536 copy modules\metadata\$(LONG)\mod_expires.$(src_so) "$(inst_so)" <.y
537@@ -892,6 +932,7 @@ _copybin:
538 copy modules\proxy\$(LONG)\mod_proxy_hcheck.$(src_so) "$(inst_so)" <.y
539 copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so) "$(inst_so)" <.y
540 copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so) "$(inst_so)" <.y
541+ copy modules\proxy\$(LONG)\mod_proxy_uwsgi.$(src_so) "$(inst_so)" <.y
542 copy modules\proxy\$(LONG)\mod_proxy_wstunnel.$(src_so) "$(inst_so)" <.y
543 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
544 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
545diff --git a/NOTICE b/NOTICE
546index 01a492b..2c1a2e9 100644
547--- a/NOTICE
548+++ b/NOTICE
549@@ -1,5 +1,5 @@
550 Apache HTTP Server
551-Copyright 2017 The Apache Software Foundation.
552+Copyright 2018 The Apache Software Foundation.
553
554 This product includes software developed at
555 The Apache Software Foundation (http://www.apache.org/).
556@@ -12,3 +12,7 @@ This software contains code derived from the RSA Data Security
557 Inc. MD5 Message-Digest Algorithm, including various
558 modifications by Spyglass Inc., Carnegie Mellon University, and
559 Bell Communications Research, Inc (Bellcore).
560+
561+This software contains code derived from the PCRE library pcreposix.c
562+source code, written by Philip Hazel, Copyright 1997-2004
563+by the University of Cambridge, England.
564diff --git a/acinclude.m4 b/acinclude.m4
565index 90ca74f..ce1d637 100644
566--- a/acinclude.m4
567+++ b/acinclude.m4
568@@ -574,9 +574,9 @@ AC_DEFUN([APACHE_CHECK_OPENSSL],[
569 ap_openssl_libs="${ap_openssl_libs:--lssl -lcrypto} `$apr_config --libs`"
570 APR_ADDTO(MOD_LDFLAGS, [$ap_openssl_libs])
571 APR_ADDTO(LIBS, [$ap_openssl_libs])
572- APR_SETVAR(ab_LDFLAGS, [$MOD_LDFLAGS])
573+ APR_SETVAR(ab_LIBS, [$MOD_LDFLAGS])
574 APACHE_SUBST(ab_CFLAGS)
575- APACHE_SUBST(ab_LDFLAGS)
576+ APACHE_SUBST(ab_LIBS)
577
578 dnl Run library and function checks
579 liberrors=""
580diff --git a/build/config.guess b/build/config.guess
581index 69ed3e5..8bd1095 100755
582--- a/build/config.guess
583+++ b/build/config.guess
584@@ -2,7 +2,7 @@
585 # Attempt to guess a canonical system name.
586 # Copyright 1992-2017 Free Software Foundation, Inc.
587
588-timestamp='2017-03-05'
589+timestamp='2017-09-16'
590
591 # This file is free software; you can redistribute it and/or modify it
592 # under the terms of the GNU General Public License as published by
593@@ -15,7 +15,7 @@ timestamp='2017-03-05'
594 # General Public License for more details.
595 #
596 # You should have received a copy of the GNU General Public License
597-# along with this program; if not, see <http://www.gnu.org/licenses/>.
598+# along with this program; if not, see <https://www.gnu.org/licenses/>.
599 #
600 # As a special exception to the GNU General Public License, if you
601 # distribute this file as part of a program that contains a
602@@ -27,7 +27,7 @@ timestamp='2017-03-05'
603 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
604 #
605 # You can get the latest version of this script from:
606-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
607+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
608 #
609 # Please send patches to <config-patches@gnu.org>.
610
611@@ -259,6 +259,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
612 *:Sortix:*:*)
613 echo ${UNAME_MACHINE}-unknown-sortix
614 exit ;;
615+ *:Redox:*:*)
616+ echo ${UNAME_MACHINE}-unknown-redox
617+ exit ;;
618 alpha:OSF1:*:*)
619 case $UNAME_RELEASE in
620 *4.0)
621@@ -315,15 +318,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
622 exitcode=$?
623 trap '' 0
624 exit $exitcode ;;
625- Alpha\ *:Windows_NT*:*)
626- # How do we know it's Interix rather than the generic POSIX subsystem?
627- # Should we change UNAME_MACHINE based on the output of uname instead
628- # of the specific Alpha model?
629- echo alpha-pc-interix
630- exit ;;
631- 21064:Windows_NT:50:3)
632- echo alpha-dec-winnt3.5
633- exit ;;
634 Amiga*:UNIX_System_V:4.0:*)
635 echo m68k-unknown-sysv4
636 exit ;;
637@@ -855,10 +849,6 @@ EOF
638 *:MSYS*:*)
639 echo ${UNAME_MACHINE}-pc-msys
640 exit ;;
641- i*:windows32*:*)
642- # uname -m includes "-pc" on this system.
643- echo ${UNAME_MACHINE}-mingw32
644- exit ;;
645 i*:PW*:*)
646 echo ${UNAME_MACHINE}-pc-pw32
647 exit ;;
648@@ -874,27 +864,12 @@ EOF
649 echo ia64-unknown-interix${UNAME_RELEASE}
650 exit ;;
651 esac ;;
652- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
653- echo i${UNAME_MACHINE}-pc-mks
654- exit ;;
655- 8664:Windows_NT:*)
656- echo x86_64-pc-mks
657- exit ;;
658- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
659- # How do we know it's Interix rather than the generic POSIX subsystem?
660- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
661- # UNAME_MACHINE based on the output of uname instead of i386?
662- echo i586-pc-interix
663- exit ;;
664 i*:UWIN*:*)
665 echo ${UNAME_MACHINE}-pc-uwin
666 exit ;;
667 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
668 echo x86_64-unknown-cygwin
669 exit ;;
670- p*:CYGWIN*:*)
671- echo powerpcle-unknown-cygwin
672- exit ;;
673 prep*:SunOS:5.*:*)
674 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
675 exit ;;
676@@ -1304,14 +1279,21 @@ EOF
677 if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
678 if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
679 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
680- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
681- grep IS_64BIT_ARCH >/dev/null
682+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
683+ grep IS_64BIT_ARCH >/dev/null
684 then
685 case $UNAME_PROCESSOR in
686 i386) UNAME_PROCESSOR=x86_64 ;;
687 powerpc) UNAME_PROCESSOR=powerpc64 ;;
688 esac
689 fi
690+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
691+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
692+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
693+ grep IS_PPC >/dev/null
694+ then
695+ UNAME_PROCESSOR=powerpc
696+ fi
697 fi
698 elif test "$UNAME_PROCESSOR" = i386 ; then
699 # Avoid executing cc on OS X 10.9, as it ships with a stub
700@@ -1335,16 +1317,16 @@ EOF
701 *:QNX:*:4*)
702 echo i386-pc-qnx
703 exit ;;
704- NEO-?:NONSTOP_KERNEL:*:*)
705+ NEO-*:NONSTOP_KERNEL:*:*)
706 echo neo-tandem-nsk${UNAME_RELEASE}
707 exit ;;
708 NSE-*:NONSTOP_KERNEL:*:*)
709 echo nse-tandem-nsk${UNAME_RELEASE}
710 exit ;;
711- NSR-?:NONSTOP_KERNEL:*:*)
712+ NSR-*:NONSTOP_KERNEL:*:*)
713 echo nsr-tandem-nsk${UNAME_RELEASE}
714 exit ;;
715- NSX-?:NONSTOP_KERNEL:*:*)
716+ NSX-*:NONSTOP_KERNEL:*:*)
717 echo nsx-tandem-nsk${UNAME_RELEASE}
718 exit ;;
719 *:NonStop-UX:*:*)
720@@ -1422,12 +1404,12 @@ cat >&2 <<EOF
721 $0: unable to guess system type
722
723 This script (version $timestamp), has failed to recognize the
724-operating system you are using. If your script is old, overwrite
725-config.guess and config.sub with the latest versions from:
726+operating system you are using. If your script is old, overwrite *all*
727+copies of config.guess and config.sub with the latest versions from:
728
729- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
730+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
731 and
732- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
733+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
734
735 If $0 has already been updated, send the following data and any
736 information you think might be pertinent to config-patches@gnu.org to
737diff --git a/build/config.sub b/build/config.sub
738index 40ea5df..95dc3d0 100755
739--- a/build/config.sub
740+++ b/build/config.sub
741@@ -2,7 +2,7 @@
742 # Configuration validation subroutine script.
743 # Copyright 1992-2017 Free Software Foundation, Inc.
744
745-timestamp='2017-04-02'
746+timestamp='2017-09-16'
747
748 # This file is free software; you can redistribute it and/or modify it
749 # under the terms of the GNU General Public License as published by
750@@ -15,7 +15,7 @@ timestamp='2017-04-02'
751 # General Public License for more details.
752 #
753 # You should have received a copy of the GNU General Public License
754-# along with this program; if not, see <http://www.gnu.org/licenses/>.
755+# along with this program; if not, see <https://www.gnu.org/licenses/>.
756 #
757 # As a special exception to the GNU General Public License, if you
758 # distribute this file as part of a program that contains a
759@@ -33,7 +33,7 @@ timestamp='2017-04-02'
760 # Otherwise, we print the canonical config type on stdout and succeed.
761
762 # You can get the latest version of this script from:
763-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
764+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
765
766 # This file is supposed to be the same for all GNU packages
767 # and recognize all the CPU types, system types and aliases
768@@ -229,9 +229,6 @@ case $os in
769 -ptx*)
770 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
771 ;;
772- -windowsnt*)
773- os=`echo $os | sed -e 's/windowsnt/winnt/'`
774- ;;
775 -psos*)
776 os=-psos
777 ;;
778@@ -1259,6 +1256,9 @@ case $basic_machine in
779 basic_machine=hppa1.1-winbond
780 os=-proelf
781 ;;
782+ x64)
783+ basic_machine=x86_64-pc
784+ ;;
785 xbox)
786 basic_machine=i686-pc
787 os=-mingw32
788@@ -1366,8 +1366,8 @@ esac
789 if [ x"$os" != x"" ]
790 then
791 case $os in
792- # First match some system type aliases
793- # that might get confused with valid system types.
794+ # First match some system type aliases that might get confused
795+ # with valid system types.
796 # -solaris* is a basic system type, with this one exception.
797 -auroraux)
798 os=-auroraux
799@@ -1387,9 +1387,9 @@ case $os in
800 -gnu/linux*)
801 os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
802 ;;
803- # First accept the basic system types.
804+ # Now accept the basic system types.
805 # The portable systems comes first.
806- # Each alternative MUST END IN A *, to match a version number.
807+ # Each alternative MUST end in a * to match a version number.
808 # -sysv* is not here because it comes later, after sysvr4.
809 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
810 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
811diff --git a/build/installwinconf.awk b/build/installwinconf.awk
812index 05f519b..a786c7f 100644
813--- a/build/installwinconf.awk
814+++ b/build/installwinconf.awk
815@@ -156,6 +156,7 @@ BEGIN {
816 print "#LoadModule log_debug_module modules/mod_log_debug.so" > dstfl;
817 print "#LoadModule log_forensic_module modules/mod_log_forensic.so" > dstfl;
818 print "#LoadModule lua_module modules/mod_lua.so" > dstfl;
819+ print "#LoadModule md_module modules/mod_md.so" > dstfl;
820 print "#LoadModule macro_module modules/mod_macro.so" > dstfl;
821 print "LoadModule mime_module modules/mod_mime.so" > dstfl;
822 print "#LoadModule mime_magic_module modules/mod_mime_magic.so" > dstfl;
823@@ -172,6 +173,7 @@ BEGIN {
824 print "#LoadModule proxy_http_module modules/mod_proxy_http.so" > dstfl;
825 print "#LoadModule proxy_http2_module modules/mod_proxy_http2.so" > dstfl;
826 print "#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so" > dstfl;
827+ print "#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so" > dstfl;
828 print "#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so" > dstfl;
829 print "#LoadModule ratelimit_module modules/mod_ratelimit.so" > dstfl;
830 print "#LoadModule reflector_module modules/mod_reflector.so" > dstfl;
831diff --git a/build/ltmain.sh b/build/ltmain.sh
832index b6f3fcb..bffda54 100644
833--- a/build/ltmain.sh
834+++ b/build/ltmain.sh
835@@ -1,12 +1,9 @@
836-#! /bin/sh
837-## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
838-## by inline-source v2014-01-03.01
839
840-# libtool (GNU libtool) 2.4.6
841-# Provide generalized library-building support services.
842+# libtool (GNU libtool) 2.4.2
843 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
844
845-# Copyright (C) 1996-2015 Free Software Foundation, Inc.
846+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
847+# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
848 # This is free software; see the source for copying conditions. There is NO
849 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
850
851@@ -26,2112 +23,881 @@
852 # General Public License for more details.
853 #
854 # You should have received a copy of the GNU General Public License
855-# along with this program. If not, see <http://www.gnu.org/licenses/>.
856-
857-
858-PROGRAM=libtool
859-PACKAGE=libtool
860-VERSION=2.4.6
861-package_revision=2.4.6
862-
863-
864-## ------ ##
865-## Usage. ##
866-## ------ ##
867-
868-# Run './libtool --help' for help with using this script from the
869-# command line.
870-
871-
872-## ------------------------------- ##
873-## User overridable command paths. ##
874-## ------------------------------- ##
875-
876-# After configure completes, it has a better idea of some of the
877-# shell tools we need than the defaults used by the functions shared
878-# with bootstrap, so set those here where they can still be over-
879-# ridden by the user, but otherwise take precedence.
880-
881-: ${AUTOCONF="autoconf"}
882-: ${AUTOMAKE="automake"}
883-
884-
885-## -------------------------- ##
886-## Source external libraries. ##
887-## -------------------------- ##
888-
889-# Much of our low-level functionality needs to be sourced from external
890-# libraries, which are installed to $pkgauxdir.
891-
892-# Set a version string for this script.
893-scriptversion=2015-01-20.17; # UTC
894-
895-# General shell script boiler plate, and helper functions.
896-# Written by Gary V. Vaughan, 2004
897-
898-# Copyright (C) 2004-2015 Free Software Foundation, Inc.
899-# This is free software; see the source for copying conditions. There is NO
900-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
901-
902-# This program is free software; you can redistribute it and/or modify
903-# it under the terms of the GNU General Public License as published by
904-# the Free Software Foundation; either version 3 of the License, or
905-# (at your option) any later version.
906-
907-# As a special exception to the GNU General Public License, if you distribute
908-# this file as part of a program or library that is built using GNU Libtool,
909-# you may include this file under the same distribution terms that you use
910-# for the rest of that program.
911-
912-# This program is distributed in the hope that it will be useful,
913-# but WITHOUT ANY WARRANTY; without even the implied warranty of
914-# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
915-# General Public License for more details.
916-
917-# You should have received a copy of the GNU General Public License
918-# along with this program. If not, see <http://www.gnu.org/licenses/>.
919+# along with GNU Libtool; see the file COPYING. If not, a copy
920+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
921+# or obtained by writing to the Free Software Foundation, Inc.,
922+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
923
924-# Please report bugs or propose patches to gary@gnu.org.
925-
926-
927-## ------ ##
928-## Usage. ##
929-## ------ ##
930-
931-# Evaluate this file near the top of your script to gain access to
932-# the functions and variables defined here:
933+# Usage: $progname [OPTION]... [MODE-ARG]...
934+#
935+# Provide generalized library-building support services.
936 #
937-# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
938+# --config show all configuration variables
939+# --debug enable verbose shell tracing
940+# -n, --dry-run display commands without modifying any files
941+# --features display basic configuration information and exit
942+# --mode=MODE use operation mode MODE
943+# --preserve-dup-deps don't remove duplicate dependency libraries
944+# --quiet, --silent don't print informational messages
945+# --no-quiet, --no-silent
946+# print informational messages (default)
947+# --no-warn don't display warning messages
948+# --tag=TAG use configuration variables from tag TAG
949+# -v, --verbose print more informational messages than default
950+# --no-verbose don't print the extra informational messages
951+# --version print version information
952+# -h, --help, --help-all print short, long, or detailed help message
953 #
954-# If you need to override any of the default environment variable
955-# settings, do that before evaluating this file.
956-
957-
958-## -------------------- ##
959-## Shell normalisation. ##
960-## -------------------- ##
961+# MODE must be one of the following:
962+#
963+# clean remove files from the build directory
964+# compile compile a source file into a libtool object
965+# execute automatically set library path, then run a program
966+# finish complete the installation of libtool libraries
967+# install install libraries or executables
968+# link create a library or an executable
969+# uninstall remove libraries from an installed directory
970+#
971+# MODE-ARGS vary depending on the MODE. When passed as first option,
972+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
973+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
974+#
975+# When reporting a bug, please describe a test case to reproduce it and
976+# include the following information:
977+#
978+# host-triplet: $host
979+# shell: $SHELL
980+# compiler: $LTCC
981+# compiler flags: $LTCFLAGS
982+# linker: $LD (gnu? $with_gnu_ld)
983+# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.11
984+# automake: $automake_version
985+# autoconf: $autoconf_version
986+#
987+# Report bugs to <bug-libtool@gnu.org>.
988+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
989+# General help using GNU software: <http://www.gnu.org/gethelp/>.
990
991-# Some shells need a little help to be as Bourne compatible as possible.
992-# Before doing anything else, make sure all that help has been provided!
993+PROGRAM=libtool
994+PACKAGE=libtool
995+VERSION="2.4.2 Debian-2.4.2-1.11"
996+TIMESTAMP=""
997+package_revision=1.3337
998
999-DUALCASE=1; export DUALCASE # for MKS sh
1000-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
1001+# Be Bourne compatible
1002+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
1003 emulate sh
1004 NULLCMD=:
1005- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
1006+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
1007 # is contrary to our usage. Disable this feature.
1008 alias -g '${1+"$@"}'='"$@"'
1009 setopt NO_GLOB_SUBST
1010 else
1011- case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
1012-fi
1013-
1014-# NLS nuisances: We save the old values in case they are required later.
1015-_G_user_locale=
1016-_G_safe_locale=
1017-for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1018-do
1019- eval "if test set = \"\${$_G_var+set}\"; then
1020- save_$_G_var=\$$_G_var
1021- $_G_var=C
1022- export $_G_var
1023- _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
1024- _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
1025- fi"
1026-done
1027-
1028-# CDPATH.
1029-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
1030-
1031-# Make sure IFS has a sensible default
1032-sp=' '
1033-nl='
1034-'
1035-IFS="$sp $nl"
1036-
1037-# There are apparently some retarded systems that use ';' as a PATH separator!
1038-if test "${PATH_SEPARATOR+set}" != set; then
1039- PATH_SEPARATOR=:
1040- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
1041- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
1042- PATH_SEPARATOR=';'
1043- }
1044+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
1045 fi
1046+BIN_SH=xpg4; export BIN_SH # for Tru64
1047+DUALCASE=1; export DUALCASE # for MKS sh
1048
1049-
1050-
1051-## ------------------------- ##
1052-## Locate command utilities. ##
1053-## ------------------------- ##
1054-
1055-
1056-# func_executable_p FILE
1057-# ----------------------
1058-# Check that FILE is an executable regular file.
1059-func_executable_p ()
1060-{
1061- test -f "$1" && test -x "$1"
1062-}
1063-
1064-
1065-# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
1066-# --------------------------------------------
1067-# Search for either a program that responds to --version with output
1068-# containing "GNU", or else returned by CHECK_FUNC otherwise, by
1069-# trying all the directories in PATH with each of the elements of
1070-# PROGS_LIST.
1071-#
1072-# CHECK_FUNC should accept the path to a candidate program, and
1073-# set $func_check_prog_result if it truncates its output less than
1074-# $_G_path_prog_max characters.
1075-func_path_progs ()
1076+# A function that is used when there is no print builtin or printf.
1077+func_fallback_echo ()
1078 {
1079- _G_progs_list=$1
1080- _G_check_func=$2
1081- _G_PATH=${3-"$PATH"}
1082-
1083- _G_path_prog_max=0
1084- _G_path_prog_found=false
1085- _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
1086- for _G_dir in $_G_PATH; do
1087- IFS=$_G_save_IFS
1088- test -z "$_G_dir" && _G_dir=.
1089- for _G_prog_name in $_G_progs_list; do
1090- for _exeext in '' .EXE; do
1091- _G_path_prog=$_G_dir/$_G_prog_name$_exeext
1092- func_executable_p "$_G_path_prog" || continue
1093- case `"$_G_path_prog" --version 2>&1` in
1094- *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
1095- *) $_G_check_func $_G_path_prog
1096- func_path_progs_result=$func_check_prog_result
1097- ;;
1098- esac
1099- $_G_path_prog_found && break 3
1100- done
1101- done
1102- done
1103- IFS=$_G_save_IFS
1104- test -z "$func_path_progs_result" && {
1105- echo "no acceptable sed could be found in \$PATH" >&2
1106- exit 1
1107- }
1108-}
1109-
1110-
1111-# We want to be able to use the functions in this file before configure
1112-# has figured out where the best binaries are kept, which means we have
1113-# to search for them ourselves - except when the results are already set
1114-# where we skip the searches.
1115-
1116-# Unless the user overrides by setting SED, search the path for either GNU
1117-# sed, or the sed that truncates its output the least.
1118-test -z "$SED" && {
1119- _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
1120- for _G_i in 1 2 3 4 5 6 7; do
1121- _G_sed_script=$_G_sed_script$nl$_G_sed_script
1122- done
1123- echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
1124- _G_sed_script=
1125-
1126- func_check_prog_sed ()
1127- {
1128- _G_path_prog=$1
1129-
1130- _G_count=0
1131- printf 0123456789 >conftest.in
1132- while :
1133- do
1134- cat conftest.in conftest.in >conftest.tmp
1135- mv conftest.tmp conftest.in
1136- cp conftest.in conftest.nl
1137- echo '' >> conftest.nl
1138- "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
1139- diff conftest.out conftest.nl >/dev/null 2>&1 || break
1140- _G_count=`expr $_G_count + 1`
1141- if test "$_G_count" -gt "$_G_path_prog_max"; then
1142- # Best one so far, save it but keep looking for a better one
1143- func_check_prog_result=$_G_path_prog
1144- _G_path_prog_max=$_G_count
1145- fi
1146- # 10*(2^10) chars as input seems more than enough
1147- test 10 -lt "$_G_count" && break
1148- done
1149- rm -f conftest.in conftest.tmp conftest.nl conftest.out
1150- }
1151-
1152- func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
1153- rm -f conftest.sed
1154- SED=$func_path_progs_result
1155+ eval 'cat <<_LTECHO_EOF
1156+$1
1157+_LTECHO_EOF'
1158 }
1159
1160+# NLS nuisances: We save the old values to restore during execute mode.
1161+lt_user_locale=
1162+lt_safe_locale=
1163+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1164+do
1165+ eval "if test \"\${$lt_var+set}\" = set; then
1166+ save_$lt_var=\$$lt_var
1167+ $lt_var=C
1168+ export $lt_var
1169+ lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
1170+ lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
1171+ fi"
1172+done
1173+LC_ALL=C
1174+LANGUAGE=C
1175+export LANGUAGE LC_ALL
1176
1177-# Unless the user overrides by setting GREP, search the path for either GNU
1178-# grep, or the grep that truncates its output the least.
1179-test -z "$GREP" && {
1180- func_check_prog_grep ()
1181- {
1182- _G_path_prog=$1
1183-
1184- _G_count=0
1185- _G_path_prog_max=0
1186- printf 0123456789 >conftest.in
1187- while :
1188- do
1189- cat conftest.in conftest.in >conftest.tmp
1190- mv conftest.tmp conftest.in
1191- cp conftest.in conftest.nl
1192- echo 'GREP' >> conftest.nl
1193- "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
1194- diff conftest.out conftest.nl >/dev/null 2>&1 || break
1195- _G_count=`expr $_G_count + 1`
1196- if test "$_G_count" -gt "$_G_path_prog_max"; then
1197- # Best one so far, save it but keep looking for a better one
1198- func_check_prog_result=$_G_path_prog
1199- _G_path_prog_max=$_G_count
1200- fi
1201- # 10*(2^10) chars as input seems more than enough
1202- test 10 -lt "$_G_count" && break
1203- done
1204- rm -f conftest.in conftest.tmp conftest.nl conftest.out
1205- }
1206+$lt_unset CDPATH
1207
1208- func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
1209- GREP=$func_path_progs_result
1210-}
1211
1212+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
1213+# is ksh but when the shell is invoked as "sh" and the current value of
1214+# the _XPG environment variable is not equal to 1 (one), the special
1215+# positional parameter $0, within a function call, is the name of the
1216+# function.
1217+progpath="$0"
1218
1219-## ------------------------------- ##
1220-## User overridable command paths. ##
1221-## ------------------------------- ##
1222
1223-# All uppercase variable names are used for environment variables. These
1224-# variables can be overridden by the user before calling a script that
1225-# uses them if a suitable command of that name is not already available
1226-# in the command search PATH.
1227
1228 : ${CP="cp -f"}
1229-: ${ECHO="printf %s\n"}
1230-: ${EGREP="$GREP -E"}
1231-: ${FGREP="$GREP -F"}
1232-: ${LN_S="ln -s"}
1233+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
1234 : ${MAKE="make"}
1235 : ${MKDIR="mkdir"}
1236 : ${MV="mv -f"}
1237 : ${RM="rm -f"}
1238 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
1239+: ${Xsed="$SED -e 1s/^X//"}
1240
1241+# Global variables:
1242+EXIT_SUCCESS=0
1243+EXIT_FAILURE=1
1244+EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
1245+EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
1246
1247-## -------------------- ##
1248-## Useful sed snippets. ##
1249-## -------------------- ##
1250+exit_status=$EXIT_SUCCESS
1251
1252-sed_dirname='s|/[^/]*$||'
1253-sed_basename='s|^.*/||'
1254+# Make sure IFS has a sensible default
1255+lt_nl='
1256+'
1257+IFS=" $lt_nl"
1258
1259-# Sed substitution that helps us do robust quoting. It backslashifies
1260-# metacharacters that are still active within double-quoted strings.
1261-sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
1262+dirname="s,/[^/]*$,,"
1263+basename="s,^.*/,,"
1264
1265-# Same as above, but do not quote variable references.
1266-sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
1267+# func_dirname file append nondir_replacement
1268+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
1269+# otherwise set result to NONDIR_REPLACEMENT.
1270+func_dirname ()
1271+{
1272+ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
1273+ if test "X$func_dirname_result" = "X${1}"; then
1274+ func_dirname_result="${3}"
1275+ else
1276+ func_dirname_result="$func_dirname_result${2}"
1277+ fi
1278+} # func_dirname may be replaced by extended shell implementation
1279
1280-# Sed substitution that turns a string into a regex matching for the
1281-# string literally.
1282-sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
1283
1284-# Sed substitution that converts a w32 file name or path
1285-# that contains forward slashes, into one that contains
1286-# (escaped) backslashes. A very naive implementation.
1287-sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
1288-
1289-# Re-'\' parameter expansions in output of sed_double_quote_subst that
1290-# were '\'-ed in input to the same. If an odd number of '\' preceded a
1291-# '$' in input to sed_double_quote_subst, that '$' was protected from
1292-# expansion. Since each input '\' is now two '\'s, look for any number
1293-# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'.
1294-_G_bs='\\'
1295-_G_bs2='\\\\'
1296-_G_bs4='\\\\\\\\'
1297-_G_dollar='\$'
1298-sed_double_backslash="\
1299- s/$_G_bs4/&\\
1300-/g
1301- s/^$_G_bs2$_G_dollar/$_G_bs&/
1302- s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
1303- s/\n//g"
1304+# func_basename file
1305+func_basename ()
1306+{
1307+ func_basename_result=`$ECHO "${1}" | $SED "$basename"`
1308+} # func_basename may be replaced by extended shell implementation
1309
1310
1311-## ----------------- ##
1312-## Global variables. ##
1313-## ----------------- ##
1314+# func_dirname_and_basename file append nondir_replacement
1315+# perform func_basename and func_dirname in a single function
1316+# call:
1317+# dirname: Compute the dirname of FILE. If nonempty,
1318+# add APPEND to the result, otherwise set result
1319+# to NONDIR_REPLACEMENT.
1320+# value returned in "$func_dirname_result"
1321+# basename: Compute filename of FILE.
1322+# value retuned in "$func_basename_result"
1323+# Implementation must be kept synchronized with func_dirname
1324+# and func_basename. For efficiency, we do not delegate to
1325+# those functions but instead duplicate the functionality here.
1326+func_dirname_and_basename ()
1327+{
1328+ # Extract subdirectory from the argument.
1329+ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
1330+ if test "X$func_dirname_result" = "X${1}"; then
1331+ func_dirname_result="${3}"
1332+ else
1333+ func_dirname_result="$func_dirname_result${2}"
1334+ fi
1335+ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
1336+} # func_dirname_and_basename may be replaced by extended shell implementation
1337
1338-# Except for the global variables explicitly listed below, the following
1339-# functions in the '^func_' namespace, and the '^require_' namespace
1340-# variables initialised in the 'Resource management' section, sourcing
1341-# this file will not pollute your global namespace with anything
1342-# else. There's no portable way to scope variables in Bourne shell
1343-# though, so actually running these functions will sometimes place
1344-# results into a variable named after the function, and often use
1345-# temporary variables in the '^_G_' namespace. If you are careful to
1346-# avoid using those namespaces casually in your sourcing script, things
1347-# should continue to work as you expect. And, of course, you can freely
1348-# overwrite any of the functions or variables defined here before
1349-# calling anything to customize them.
1350
1351-EXIT_SUCCESS=0
1352-EXIT_FAILURE=1
1353-EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
1354-EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
1355+# func_stripname prefix suffix name
1356+# strip PREFIX and SUFFIX off of NAME.
1357+# PREFIX and SUFFIX must not contain globbing or regex special
1358+# characters, hashes, percent signs, but SUFFIX may contain a leading
1359+# dot (in which case that matches only a dot).
1360+# func_strip_suffix prefix name
1361+func_stripname ()
1362+{
1363+ case ${2} in
1364+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
1365+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
1366+ esac
1367+} # func_stripname may be replaced by extended shell implementation
1368
1369-# Allow overriding, eg assuming that you follow the convention of
1370-# putting '$debug_cmd' at the start of all your functions, you can get
1371-# bash to show function call trace with:
1372-#
1373-# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
1374-debug_cmd=${debug_cmd-":"}
1375-exit_cmd=:
1376
1377-# By convention, finish your script with:
1378-#
1379-# exit $exit_status
1380-#
1381-# so that you can set exit_status to non-zero if you want to indicate
1382-# something went wrong during execution without actually bailing out at
1383-# the point of failure.
1384-exit_status=$EXIT_SUCCESS
1385+# These SED scripts presuppose an absolute path with a trailing slash.
1386+pathcar='s,^/\([^/]*\).*$,\1,'
1387+pathcdr='s,^/[^/]*,,'
1388+removedotparts=':dotsl
1389+ s@/\./@/@g
1390+ t dotsl
1391+ s,/\.$,/,'
1392+collapseslashes='s@/\{1,\}@/@g'
1393+finalslash='s,/*$,/,'
1394
1395-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
1396-# is ksh but when the shell is invoked as "sh" and the current value of
1397-# the _XPG environment variable is not equal to 1 (one), the special
1398-# positional parameter $0, within a function call, is the name of the
1399-# function.
1400-progpath=$0
1401+# func_normal_abspath PATH
1402+# Remove doubled-up and trailing slashes, "." path components,
1403+# and cancel out any ".." path components in PATH after making
1404+# it an absolute path.
1405+# value returned in "$func_normal_abspath_result"
1406+func_normal_abspath ()
1407+{
1408+ # Start from root dir and reassemble the path.
1409+ func_normal_abspath_result=
1410+ func_normal_abspath_tpath=$1
1411+ func_normal_abspath_altnamespace=
1412+ case $func_normal_abspath_tpath in
1413+ "")
1414+ # Empty path, that just means $cwd.
1415+ func_stripname '' '/' "`pwd`"
1416+ func_normal_abspath_result=$func_stripname_result
1417+ return
1418+ ;;
1419+ # The next three entries are used to spot a run of precisely
1420+ # two leading slashes without using negated character classes;
1421+ # we take advantage of case's first-match behaviour.
1422+ ///*)
1423+ # Unusual form of absolute path, do nothing.
1424+ ;;
1425+ //*)
1426+ # Not necessarily an ordinary path; POSIX reserves leading '//'
1427+ # and for example Cygwin uses it to access remote file shares
1428+ # over CIFS/SMB, so we conserve a leading double slash if found.
1429+ func_normal_abspath_altnamespace=/
1430+ ;;
1431+ /*)
1432+ # Absolute path, do nothing.
1433+ ;;
1434+ *)
1435+ # Relative path, prepend $cwd.
1436+ func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
1437+ ;;
1438+ esac
1439+ # Cancel out all the simple stuff to save iterations. We also want
1440+ # the path to end with a slash for ease of parsing, so make sure
1441+ # there is one (and only one) here.
1442+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
1443+ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
1444+ while :; do
1445+ # Processed it all yet?
1446+ if test "$func_normal_abspath_tpath" = / ; then
1447+ # If we ascended to the root using ".." the result may be empty now.
1448+ if test -z "$func_normal_abspath_result" ; then
1449+ func_normal_abspath_result=/
1450+ fi
1451+ break
1452+ fi
1453+ func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
1454+ -e "$pathcar"`
1455+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
1456+ -e "$pathcdr"`
1457+ # Figure out what to do with it
1458+ case $func_normal_abspath_tcomponent in
1459+ "")
1460+ # Trailing empty path component, ignore it.
1461+ ;;
1462+ ..)
1463+ # Parent dir; strip last assembled component from result.
1464+ func_dirname "$func_normal_abspath_result"
1465+ func_normal_abspath_result=$func_dirname_result
1466+ ;;
1467+ *)
1468+ # Actual path component, append it.
1469+ func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
1470+ ;;
1471+ esac
1472+ done
1473+ # Restore leading double-slash if one was found on entry.
1474+ func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
1475+}
1476+
1477+# func_relative_path SRCDIR DSTDIR
1478+# generates a relative path from SRCDIR to DSTDIR, with a trailing
1479+# slash if non-empty, suitable for immediately appending a filename
1480+# without needing to append a separator.
1481+# value returned in "$func_relative_path_result"
1482+func_relative_path ()
1483+{
1484+ func_relative_path_result=
1485+ func_normal_abspath "$1"
1486+ func_relative_path_tlibdir=$func_normal_abspath_result
1487+ func_normal_abspath "$2"
1488+ func_relative_path_tbindir=$func_normal_abspath_result
1489+
1490+ # Ascend the tree starting from libdir
1491+ while :; do
1492+ # check if we have found a prefix of bindir
1493+ case $func_relative_path_tbindir in
1494+ $func_relative_path_tlibdir)
1495+ # found an exact match
1496+ func_relative_path_tcancelled=
1497+ break
1498+ ;;
1499+ $func_relative_path_tlibdir*)
1500+ # found a matching prefix
1501+ func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
1502+ func_relative_path_tcancelled=$func_stripname_result
1503+ if test -z "$func_relative_path_result"; then
1504+ func_relative_path_result=.
1505+ fi
1506+ break
1507+ ;;
1508+ *)
1509+ func_dirname $func_relative_path_tlibdir
1510+ func_relative_path_tlibdir=${func_dirname_result}
1511+ if test "x$func_relative_path_tlibdir" = x ; then
1512+ # Have to descend all the way to the root!
1513+ func_relative_path_result=../$func_relative_path_result
1514+ func_relative_path_tcancelled=$func_relative_path_tbindir
1515+ break
1516+ fi
1517+ func_relative_path_result=../$func_relative_path_result
1518+ ;;
1519+ esac
1520+ done
1521+
1522+ # Now calculate path; take care to avoid doubling-up slashes.
1523+ func_stripname '' '/' "$func_relative_path_result"
1524+ func_relative_path_result=$func_stripname_result
1525+ func_stripname '/' '/' "$func_relative_path_tcancelled"
1526+ if test "x$func_stripname_result" != x ; then
1527+ func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
1528+ fi
1529+
1530+ # Normalisation. If bindir is libdir, return empty string,
1531+ # else relative path ending with a slash; either way, target
1532+ # file name can be directly appended.
1533+ if test ! -z "$func_relative_path_result"; then
1534+ func_stripname './' '' "$func_relative_path_result/"
1535+ func_relative_path_result=$func_stripname_result
1536+ fi
1537+}
1538
1539-# The name of this program.
1540-progname=`$ECHO "$progpath" |$SED "$sed_basename"`
1541+# The name of this program:
1542+func_dirname_and_basename "$progpath"
1543+progname=$func_basename_result
1544
1545-# Make sure we have an absolute progpath for reexecution:
1546+# Make sure we have an absolute path for reexecution:
1547 case $progpath in
1548 [\\/]*|[A-Za-z]:\\*) ;;
1549 *[\\/]*)
1550- progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
1551+ progdir=$func_dirname_result
1552 progdir=`cd "$progdir" && pwd`
1553- progpath=$progdir/$progname
1554+ progpath="$progdir/$progname"
1555 ;;
1556 *)
1557- _G_IFS=$IFS
1558+ save_IFS="$IFS"
1559 IFS=${PATH_SEPARATOR-:}
1560 for progdir in $PATH; do
1561- IFS=$_G_IFS
1562+ IFS="$save_IFS"
1563 test -x "$progdir/$progname" && break
1564 done
1565- IFS=$_G_IFS
1566+ IFS="$save_IFS"
1567 test -n "$progdir" || progdir=`pwd`
1568- progpath=$progdir/$progname
1569+ progpath="$progdir/$progname"
1570 ;;
1571 esac
1572
1573+# Sed substitution that helps us do robust quoting. It backslashifies
1574+# metacharacters that are still active within double-quoted strings.
1575+Xsed="${SED}"' -e 1s/^X//'
1576+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
1577+
1578+# Same as above, but do not quote variable references.
1579+double_quote_subst='s/\(["`\\]\)/\\\1/g'
1580
1581-## ----------------- ##
1582-## Standard options. ##
1583-## ----------------- ##
1584+# Sed substitution that turns a string into a regex matching for the
1585+# string literally.
1586+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
1587
1588-# The following options affect the operation of the functions defined
1589-# below, and should be set appropriately depending on run-time para-
1590-# meters passed on the command line.
1591+# Sed substitution that converts a w32 file name or path
1592+# which contains forward slashes, into one that contains
1593+# (escaped) backslashes. A very naive implementation.
1594+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
1595+
1596+# Re-`\' parameter expansions in output of double_quote_subst that were
1597+# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
1598+# in input to double_quote_subst, that '$' was protected from expansion.
1599+# Since each input `\' is now two `\'s, look for any number of runs of
1600+# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
1601+bs='\\'
1602+bs2='\\\\'
1603+bs4='\\\\\\\\'
1604+dollar='\$'
1605+sed_double_backslash="\
1606+ s/$bs4/&\\
1607+/g
1608+ s/^$bs2$dollar/$bs&/
1609+ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
1610+ s/\n//g"
1611
1612+# Standard options:
1613 opt_dry_run=false
1614+opt_help=false
1615 opt_quiet=false
1616 opt_verbose=false
1617+opt_warning=:
1618
1619-# Categories 'all' and 'none' are always available. Append any others
1620-# you will pass as the first argument to func_warning from your own
1621-# code.
1622-warning_categories=
1623+# func_echo arg...
1624+# Echo program name prefixed message, along with the current mode
1625+# name if it has been set yet.
1626+func_echo ()
1627+{
1628+ $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
1629+}
1630
1631-# By default, display warnings according to 'opt_warning_types'. Set
1632-# 'warning_func' to ':' to elide all warnings, or func_fatal_error to
1633-# treat the next displayed warning as a fatal error.
1634-warning_func=func_warn_and_continue
1635+# func_verbose arg...
1636+# Echo program name prefixed message in verbose mode only.
1637+func_verbose ()
1638+{
1639+ $opt_verbose && func_echo ${1+"$@"}
1640
1641-# Set to 'all' to display all warnings, 'none' to suppress all
1642-# warnings, or a space delimited list of some subset of
1643-# 'warning_categories' to display only the listed warnings.
1644-opt_warning_types=all
1645+ # A bug in bash halts the script if the last line of a function
1646+ # fails when set -e is in force, so we need another command to
1647+ # work around that:
1648+ :
1649+}
1650
1651+# func_echo_all arg...
1652+# Invoke $ECHO with all args, space-separated.
1653+func_echo_all ()
1654+{
1655+ $ECHO "$*"
1656+}
1657
1658-## -------------------- ##
1659-## Resource management. ##
1660-## -------------------- ##
1661+# func_error arg...
1662+# Echo program name prefixed message to standard error.
1663+func_error ()
1664+{
1665+ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
1666+}
1667
1668-# This section contains definitions for functions that each ensure a
1669-# particular resource (a file, or a non-empty configuration variable for
1670-# example) is available, and if appropriate to extract default values
1671-# from pertinent package files. Call them using their associated
1672-# 'require_*' variable to ensure that they are executed, at most, once.
1673-#
1674-# It's entirely deliberate that calling these functions can set
1675-# variables that don't obey the namespace limitations obeyed by the rest
1676-# of this file, in order that that they be as useful as possible to
1677-# callers.
1678+# func_warning arg...
1679+# Echo program name prefixed warning message to standard error.
1680+func_warning ()
1681+{
1682+ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
1683
1684+ # bash bug again:
1685+ :
1686+}
1687
1688-# require_term_colors
1689-# -------------------
1690-# Allow display of bold text on terminals that support it.
1691-require_term_colors=func_require_term_colors
1692-func_require_term_colors ()
1693+# func_fatal_error arg...
1694+# Echo program name prefixed message to standard error, and exit.
1695+func_fatal_error ()
1696 {
1697- $debug_cmd
1698-
1699- test -t 1 && {
1700- # COLORTERM and USE_ANSI_COLORS environment variables take
1701- # precedence, because most terminfo databases neglect to describe
1702- # whether color sequences are supported.
1703- test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
1704-
1705- if test 1 = "$USE_ANSI_COLORS"; then
1706- # Standard ANSI escape sequences
1707- tc_reset=''
1708- tc_bold=''; tc_standout=''
1709- tc_red=''; tc_green=''
1710- tc_blue=''; tc_cyan=''
1711- else
1712- # Otherwise trust the terminfo database after all.
1713- test -n "`tput sgr0 2>/dev/null`" && {
1714- tc_reset=`tput sgr0`
1715- test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
1716- tc_standout=$tc_bold
1717- test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
1718- test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
1719- test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
1720- test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
1721- test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
1722- }
1723- fi
1724- }
1725+ func_error ${1+"$@"}
1726+ exit $EXIT_FAILURE
1727+}
1728
1729- require_term_colors=:
1730+# func_fatal_help arg...
1731+# Echo program name prefixed message to standard error, followed by
1732+# a help hint, and exit.
1733+func_fatal_help ()
1734+{
1735+ func_error ${1+"$@"}
1736+ func_fatal_error "$help"
1737 }
1738+help="Try \`$progname --help' for more information." ## default
1739
1740
1741-## ----------------- ##
1742-## Function library. ##
1743-## ----------------- ##
1744-
1745-# This section contains a variety of useful functions to call in your
1746-# scripts. Take note of the portable wrappers for features provided by
1747-# some modern shells, which will fall back to slower equivalents on
1748-# less featureful shells.
1749-
1750-
1751-# func_append VAR VALUE
1752-# ---------------------
1753-# Append VALUE onto the existing contents of VAR.
1754-
1755- # We should try to minimise forks, especially on Windows where they are
1756- # unreasonably slow, so skip the feature probes when bash or zsh are
1757- # being used:
1758- if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
1759- : ${_G_HAVE_ARITH_OP="yes"}
1760- : ${_G_HAVE_XSI_OPS="yes"}
1761- # The += operator was introduced in bash 3.1
1762- case $BASH_VERSION in
1763- [12].* | 3.0 | 3.0*) ;;
1764- *)
1765- : ${_G_HAVE_PLUSEQ_OP="yes"}
1766- ;;
1767- esac
1768- fi
1769-
1770- # _G_HAVE_PLUSEQ_OP
1771- # Can be empty, in which case the shell is probed, "yes" if += is
1772- # useable or anything else if it does not work.
1773- test -z "$_G_HAVE_PLUSEQ_OP" \
1774- && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
1775- && _G_HAVE_PLUSEQ_OP=yes
1776-
1777-if test yes = "$_G_HAVE_PLUSEQ_OP"
1778-then
1779- # This is an XSI compatible shell, allowing a faster implementation...
1780- eval 'func_append ()
1781- {
1782- $debug_cmd
1783-
1784- eval "$1+=\$2"
1785- }'
1786-else
1787- # ...otherwise fall back to using expr, which is often a shell builtin.
1788- func_append ()
1789- {
1790- $debug_cmd
1791-
1792- eval "$1=\$$1\$2"
1793- }
1794-fi
1795-
1796-
1797-# func_append_quoted VAR VALUE
1798-# ----------------------------
1799-# Quote VALUE and append to the end of shell variable VAR, separated
1800-# by a space.
1801-if test yes = "$_G_HAVE_PLUSEQ_OP"; then
1802- eval 'func_append_quoted ()
1803- {
1804- $debug_cmd
1805-
1806- func_quote_for_eval "$2"
1807- eval "$1+=\\ \$func_quote_for_eval_result"
1808- }'
1809-else
1810- func_append_quoted ()
1811- {
1812- $debug_cmd
1813-
1814- func_quote_for_eval "$2"
1815- eval "$1=\$$1\\ \$func_quote_for_eval_result"
1816- }
1817-fi
1818-
1819-
1820-# func_append_uniq VAR VALUE
1821-# --------------------------
1822-# Append unique VALUE onto the existing contents of VAR, assuming
1823-# entries are delimited by the first character of VALUE. For example:
1824-#
1825-# func_append_uniq options " --another-option option-argument"
1826-#
1827-# will only append to $options if " --another-option option-argument "
1828-# is not already present somewhere in $options already (note spaces at
1829-# each end implied by leading space in second argument).
1830-func_append_uniq ()
1831-{
1832- $debug_cmd
1833-
1834- eval _G_current_value='`$ECHO $'$1'`'
1835- _G_delim=`expr "$2" : '\(.\)'`
1836-
1837- case $_G_delim$_G_current_value$_G_delim in
1838- *"$2$_G_delim"*) ;;
1839- *) func_append "$@" ;;
1840- esac
1841-}
1842-
1843-
1844-# func_arith TERM...
1845-# ------------------
1846-# Set func_arith_result to the result of evaluating TERMs.
1847- test -z "$_G_HAVE_ARITH_OP" \
1848- && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
1849- && _G_HAVE_ARITH_OP=yes
1850-
1851-if test yes = "$_G_HAVE_ARITH_OP"; then
1852- eval 'func_arith ()
1853- {
1854- $debug_cmd
1855-
1856- func_arith_result=$(( $* ))
1857- }'
1858-else
1859- func_arith ()
1860- {
1861- $debug_cmd
1862-
1863- func_arith_result=`expr "$@"`
1864- }
1865-fi
1866-
1867-
1868-# func_basename FILE
1869-# ------------------
1870-# Set func_basename_result to FILE with everything up to and including
1871-# the last / stripped.
1872-if test yes = "$_G_HAVE_XSI_OPS"; then
1873- # If this shell supports suffix pattern removal, then use it to avoid
1874- # forking. Hide the definitions single quotes in case the shell chokes
1875- # on unsupported syntax...
1876- _b='func_basename_result=${1##*/}'
1877- _d='case $1 in
1878- */*) func_dirname_result=${1%/*}$2 ;;
1879- * ) func_dirname_result=$3 ;;
1880- esac'
1881-
1882-else
1883- # ...otherwise fall back to using sed.
1884- _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
1885- _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"`
1886- if test "X$func_dirname_result" = "X$1"; then
1887- func_dirname_result=$3
1888- else
1889- func_append func_dirname_result "$2"
1890- fi'
1891-fi
1892-
1893-eval 'func_basename ()
1894-{
1895- $debug_cmd
1896-
1897- '"$_b"'
1898-}'
1899-
1900-
1901-# func_dirname FILE APPEND NONDIR_REPLACEMENT
1902-# -------------------------------------------
1903-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
1904-# otherwise set result to NONDIR_REPLACEMENT.
1905-eval 'func_dirname ()
1906-{
1907- $debug_cmd
1908-
1909- '"$_d"'
1910-}'
1911-
1912-
1913-# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
1914-# --------------------------------------------------------
1915-# Perform func_basename and func_dirname in a single function
1916-# call:
1917-# dirname: Compute the dirname of FILE. If nonempty,
1918-# add APPEND to the result, otherwise set result
1919-# to NONDIR_REPLACEMENT.
1920-# value returned in "$func_dirname_result"
1921-# basename: Compute filename of FILE.
1922-# value retuned in "$func_basename_result"
1923-# For efficiency, we do not delegate to the functions above but instead
1924-# duplicate the functionality here.
1925-eval 'func_dirname_and_basename ()
1926-{
1927- $debug_cmd
1928-
1929- '"$_b"'
1930- '"$_d"'
1931-}'
1932-
1933-
1934-# func_echo ARG...
1935-# ----------------
1936-# Echo program name prefixed message.
1937-func_echo ()
1938-{
1939- $debug_cmd
1940-
1941- _G_message=$*
1942-
1943- func_echo_IFS=$IFS
1944- IFS=$nl
1945- for _G_line in $_G_message; do
1946- IFS=$func_echo_IFS
1947- $ECHO "$progname: $_G_line"
1948- done
1949- IFS=$func_echo_IFS
1950-}
1951-
1952-
1953-# func_echo_all ARG...
1954-# --------------------
1955-# Invoke $ECHO with all args, space-separated.
1956-func_echo_all ()
1957-{
1958- $ECHO "$*"
1959-}
1960-
1961-
1962-# func_echo_infix_1 INFIX ARG...
1963-# ------------------------------
1964-# Echo program name, followed by INFIX on the first line, with any
1965-# additional lines not showing INFIX.
1966-func_echo_infix_1 ()
1967-{
1968- $debug_cmd
1969-
1970- $require_term_colors
1971-
1972- _G_infix=$1; shift
1973- _G_indent=$_G_infix
1974- _G_prefix="$progname: $_G_infix: "
1975- _G_message=$*
1976-
1977- # Strip color escape sequences before counting printable length
1978- for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
1979- do
1980- test -n "$_G_tc" && {
1981- _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
1982- _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
1983- }
1984- done
1985- _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes
1986-
1987- func_echo_infix_1_IFS=$IFS
1988- IFS=$nl
1989- for _G_line in $_G_message; do
1990- IFS=$func_echo_infix_1_IFS
1991- $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
1992- _G_prefix=$_G_indent
1993- done
1994- IFS=$func_echo_infix_1_IFS
1995-}
1996-
1997-
1998-# func_error ARG...
1999-# -----------------
2000-# Echo program name prefixed message to standard error.
2001-func_error ()
2002-{
2003- $debug_cmd
2004-
2005- $require_term_colors
2006-
2007- func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2
2008-}
2009-
2010-
2011-# func_fatal_error ARG...
2012-# -----------------------
2013-# Echo program name prefixed message to standard error, and exit.
2014-func_fatal_error ()
2015-{
2016- $debug_cmd
2017-
2018- func_error "$*"
2019- exit $EXIT_FAILURE
2020-}
2021-
2022-
2023-# func_grep EXPRESSION FILENAME
2024-# -----------------------------
2025+# func_grep expression filename
2026 # Check whether EXPRESSION matches any line of FILENAME, without output.
2027 func_grep ()
2028 {
2029- $debug_cmd
2030-
2031 $GREP "$1" "$2" >/dev/null 2>&1
2032 }
2033
2034
2035-# func_len STRING
2036-# ---------------
2037-# Set func_len_result to the length of STRING. STRING may not
2038-# start with a hyphen.
2039- test -z "$_G_HAVE_XSI_OPS" \
2040- && (eval 'x=a/b/c;
2041- test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
2042- && _G_HAVE_XSI_OPS=yes
2043-
2044-if test yes = "$_G_HAVE_XSI_OPS"; then
2045- eval 'func_len ()
2046- {
2047- $debug_cmd
2048-
2049- func_len_result=${#1}
2050- }'
2051-else
2052- func_len ()
2053- {
2054- $debug_cmd
2055-
2056- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
2057- }
2058-fi
2059-
2060-
2061-# func_mkdir_p DIRECTORY-PATH
2062-# ---------------------------
2063+# func_mkdir_p directory-path
2064 # Make sure the entire path to DIRECTORY-PATH is available.
2065 func_mkdir_p ()
2066 {
2067- $debug_cmd
2068-
2069- _G_directory_path=$1
2070- _G_dir_list=
2071+ my_directory_path="$1"
2072+ my_dir_list=
2073
2074- if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
2075+ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
2076
2077- # Protect directory names starting with '-'
2078- case $_G_directory_path in
2079- -*) _G_directory_path=./$_G_directory_path ;;
2080+ # Protect directory names starting with `-'
2081+ case $my_directory_path in
2082+ -*) my_directory_path="./$my_directory_path" ;;
2083 esac
2084
2085 # While some portion of DIR does not yet exist...
2086- while test ! -d "$_G_directory_path"; do
2087+ while test ! -d "$my_directory_path"; do
2088 # ...make a list in topmost first order. Use a colon delimited
2089 # list incase some portion of path contains whitespace.
2090- _G_dir_list=$_G_directory_path:$_G_dir_list
2091+ my_dir_list="$my_directory_path:$my_dir_list"
2092
2093 # If the last portion added has no slash in it, the list is done
2094- case $_G_directory_path in */*) ;; *) break ;; esac
2095+ case $my_directory_path in */*) ;; *) break ;; esac
2096
2097 # ...otherwise throw away the child directory and loop
2098- _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
2099+ my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
2100 done
2101- _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
2102+ my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
2103
2104- func_mkdir_p_IFS=$IFS; IFS=:
2105- for _G_dir in $_G_dir_list; do
2106- IFS=$func_mkdir_p_IFS
2107- # mkdir can fail with a 'File exist' error if two processes
2108+ save_mkdir_p_IFS="$IFS"; IFS=':'
2109+ for my_dir in $my_dir_list; do
2110+ IFS="$save_mkdir_p_IFS"
2111+ # mkdir can fail with a `File exist' error if two processes
2112 # try to create one of the directories concurrently. Don't
2113 # stop in that case!
2114- $MKDIR "$_G_dir" 2>/dev/null || :
2115+ $MKDIR "$my_dir" 2>/dev/null || :
2116 done
2117- IFS=$func_mkdir_p_IFS
2118+ IFS="$save_mkdir_p_IFS"
2119
2120 # Bail out if we (or some other process) failed to create a directory.
2121- test -d "$_G_directory_path" || \
2122- func_fatal_error "Failed to create '$1'"
2123+ test -d "$my_directory_path" || \
2124+ func_fatal_error "Failed to create \`$1'"
2125 fi
2126 }
2127
2128
2129-# func_mktempdir [BASENAME]
2130-# -------------------------
2131+# func_mktempdir [string]
2132 # Make a temporary directory that won't clash with other running
2133 # libtool processes, and avoids race conditions if possible. If
2134-# given, BASENAME is the basename for that directory.
2135+# given, STRING is the basename for that directory.
2136 func_mktempdir ()
2137 {
2138- $debug_cmd
2139+ my_template="${TMPDIR-/tmp}/${1-$progname}"
2140
2141- _G_template=${TMPDIR-/tmp}/${1-$progname}
2142-
2143- if test : = "$opt_dry_run"; then
2144+ if test "$opt_dry_run" = ":"; then
2145 # Return a directory name, but don't create it in dry-run mode
2146- _G_tmpdir=$_G_template-$$
2147+ my_tmpdir="${my_template}-$$"
2148 else
2149
2150 # If mktemp works, use that first and foremost
2151- _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
2152+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
2153
2154- if test ! -d "$_G_tmpdir"; then
2155+ if test ! -d "$my_tmpdir"; then
2156 # Failing that, at least try and use $RANDOM to avoid a race
2157- _G_tmpdir=$_G_template-${RANDOM-0}$$
2158+ my_tmpdir="${my_template}-${RANDOM-0}$$"
2159
2160- func_mktempdir_umask=`umask`
2161+ save_mktempdir_umask=`umask`
2162 umask 0077
2163- $MKDIR "$_G_tmpdir"
2164- umask $func_mktempdir_umask
2165+ $MKDIR "$my_tmpdir"
2166+ umask $save_mktempdir_umask
2167 fi
2168
2169 # If we're not in dry-run mode, bomb out on failure
2170- test -d "$_G_tmpdir" || \
2171- func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
2172- fi
2173-
2174- $ECHO "$_G_tmpdir"
2175-}
2176-
2177-
2178-# func_normal_abspath PATH
2179-# ------------------------
2180-# Remove doubled-up and trailing slashes, "." path components,
2181-# and cancel out any ".." path components in PATH after making
2182-# it an absolute path.
2183-func_normal_abspath ()
2184-{
2185- $debug_cmd
2186-
2187- # These SED scripts presuppose an absolute path with a trailing slash.
2188- _G_pathcar='s|^/\([^/]*\).*$|\1|'
2189- _G_pathcdr='s|^/[^/]*||'
2190- _G_removedotparts=':dotsl
2191- s|/\./|/|g
2192- t dotsl
2193- s|/\.$|/|'
2194- _G_collapseslashes='s|/\{1,\}|/|g'
2195- _G_finalslash='s|/*$|/|'
2196-
2197- # Start from root dir and reassemble the path.
2198- func_normal_abspath_result=
2199- func_normal_abspath_tpath=$1
2200- func_normal_abspath_altnamespace=
2201- case $func_normal_abspath_tpath in
2202- "")
2203- # Empty path, that just means $cwd.
2204- func_stripname '' '/' "`pwd`"
2205- func_normal_abspath_result=$func_stripname_result
2206- return
2207- ;;
2208- # The next three entries are used to spot a run of precisely
2209- # two leading slashes without using negated character classes;
2210- # we take advantage of case's first-match behaviour.
2211- ///*)
2212- # Unusual form of absolute path, do nothing.
2213- ;;
2214- //*)
2215- # Not necessarily an ordinary path; POSIX reserves leading '//'
2216- # and for example Cygwin uses it to access remote file shares
2217- # over CIFS/SMB, so we conserve a leading double slash if found.
2218- func_normal_abspath_altnamespace=/
2219- ;;
2220- /*)
2221- # Absolute path, do nothing.
2222- ;;
2223- *)
2224- # Relative path, prepend $cwd.
2225- func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
2226- ;;
2227- esac
2228-
2229- # Cancel out all the simple stuff to save iterations. We also want
2230- # the path to end with a slash for ease of parsing, so make sure
2231- # there is one (and only one) here.
2232- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
2233- -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
2234- while :; do
2235- # Processed it all yet?
2236- if test / = "$func_normal_abspath_tpath"; then
2237- # If we ascended to the root using ".." the result may be empty now.
2238- if test -z "$func_normal_abspath_result"; then
2239- func_normal_abspath_result=/
2240- fi
2241- break
2242- fi
2243- func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
2244- -e "$_G_pathcar"`
2245- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
2246- -e "$_G_pathcdr"`
2247- # Figure out what to do with it
2248- case $func_normal_abspath_tcomponent in
2249- "")
2250- # Trailing empty path component, ignore it.
2251- ;;
2252- ..)
2253- # Parent dir; strip last assembled component from result.
2254- func_dirname "$func_normal_abspath_result"
2255- func_normal_abspath_result=$func_dirname_result
2256- ;;
2257- *)
2258- # Actual path component, append it.
2259- func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
2260- ;;
2261- esac
2262- done
2263- # Restore leading double-slash if one was found on entry.
2264- func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
2265-}
2266-
2267-
2268-# func_notquiet ARG...
2269-# --------------------
2270-# Echo program name prefixed message only when not in quiet mode.
2271-func_notquiet ()
2272-{
2273- $debug_cmd
2274-
2275- $opt_quiet || func_echo ${1+"$@"}
2276-
2277- # A bug in bash halts the script if the last line of a function
2278- # fails when set -e is in force, so we need another command to
2279- # work around that:
2280- :
2281-}
2282-
2283-
2284-# func_relative_path SRCDIR DSTDIR
2285-# --------------------------------
2286-# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
2287-func_relative_path ()
2288-{
2289- $debug_cmd
2290-
2291- func_relative_path_result=
2292- func_normal_abspath "$1"
2293- func_relative_path_tlibdir=$func_normal_abspath_result
2294- func_normal_abspath "$2"
2295- func_relative_path_tbindir=$func_normal_abspath_result
2296-
2297- # Ascend the tree starting from libdir
2298- while :; do
2299- # check if we have found a prefix of bindir
2300- case $func_relative_path_tbindir in
2301- $func_relative_path_tlibdir)
2302- # found an exact match
2303- func_relative_path_tcancelled=
2304- break
2305- ;;
2306- $func_relative_path_tlibdir*)
2307- # found a matching prefix
2308- func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
2309- func_relative_path_tcancelled=$func_stripname_result
2310- if test -z "$func_relative_path_result"; then
2311- func_relative_path_result=.
2312- fi
2313- break
2314- ;;
2315- *)
2316- func_dirname $func_relative_path_tlibdir
2317- func_relative_path_tlibdir=$func_dirname_result
2318- if test -z "$func_relative_path_tlibdir"; then
2319- # Have to descend all the way to the root!
2320- func_relative_path_result=../$func_relative_path_result
2321- func_relative_path_tcancelled=$func_relative_path_tbindir
2322- break
2323- fi
2324- func_relative_path_result=../$func_relative_path_result
2325- ;;
2326- esac
2327- done
2328-
2329- # Now calculate path; take care to avoid doubling-up slashes.
2330- func_stripname '' '/' "$func_relative_path_result"
2331- func_relative_path_result=$func_stripname_result
2332- func_stripname '/' '/' "$func_relative_path_tcancelled"
2333- if test -n "$func_stripname_result"; then
2334- func_append func_relative_path_result "/$func_stripname_result"
2335- fi
2336-
2337- # Normalisation. If bindir is libdir, return '.' else relative path.
2338- if test -n "$func_relative_path_result"; then
2339- func_stripname './' '' "$func_relative_path_result"
2340- func_relative_path_result=$func_stripname_result
2341+ test -d "$my_tmpdir" || \
2342+ func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
2343 fi
2344
2345- test -n "$func_relative_path_result" || func_relative_path_result=.
2346-
2347- :
2348+ $ECHO "$my_tmpdir"
2349 }
2350
2351
2352-# func_quote_for_eval ARG...
2353-# --------------------------
2354-# Aesthetically quote ARGs to be evaled later.
2355-# This function returns two values:
2356-# i) func_quote_for_eval_result
2357-# double-quoted, suitable for a subsequent eval
2358-# ii) func_quote_for_eval_unquoted_result
2359-# has all characters that are still active within double
2360-# quotes backslashified.
2361+# func_quote_for_eval arg
2362+# Aesthetically quote ARG to be evaled later.
2363+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
2364+# is double-quoted, suitable for a subsequent eval, whereas
2365+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
2366+# which are still active within double quotes backslashified.
2367 func_quote_for_eval ()
2368 {
2369- $debug_cmd
2370-
2371- func_quote_for_eval_unquoted_result=
2372- func_quote_for_eval_result=
2373- while test 0 -lt $#; do
2374- case $1 in
2375- *[\\\`\"\$]*)
2376- _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
2377- *)
2378- _G_unquoted_arg=$1 ;;
2379- esac
2380- if test -n "$func_quote_for_eval_unquoted_result"; then
2381- func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
2382- else
2383- func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
2384- fi
2385-
2386- case $_G_unquoted_arg in
2387- # Double-quote args containing shell metacharacters to delay
2388- # word splitting, command substitution and variable expansion
2389- # for a subsequent eval.
2390- # Many Bourne shells cannot handle close brackets correctly
2391- # in scan sets, so we specify it separately.
2392- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
2393- _G_quoted_arg=\"$_G_unquoted_arg\"
2394- ;;
2395- *)
2396- _G_quoted_arg=$_G_unquoted_arg
2397- ;;
2398- esac
2399-
2400- if test -n "$func_quote_for_eval_result"; then
2401- func_append func_quote_for_eval_result " $_G_quoted_arg"
2402- else
2403- func_append func_quote_for_eval_result "$_G_quoted_arg"
2404- fi
2405- shift
2406- done
2407-}
2408-
2409-
2410-# func_quote_for_expand ARG
2411-# -------------------------
2412-# Aesthetically quote ARG to be evaled later; same as above,
2413-# but do not quote variable references.
2414-func_quote_for_expand ()
2415-{
2416- $debug_cmd
2417-
2418 case $1 in
2419- *[\\\`\"]*)
2420- _G_arg=`$ECHO "$1" | $SED \
2421- -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
2422+ *[\\\`\"\$]*)
2423+ func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
2424 *)
2425- _G_arg=$1 ;;
2426+ func_quote_for_eval_unquoted_result="$1" ;;
2427 esac
2428
2429- case $_G_arg in
2430+ case $func_quote_for_eval_unquoted_result in
2431 # Double-quote args containing shell metacharacters to delay
2432- # word splitting and command substitution for a subsequent eval.
2433+ # word splitting, command substitution and and variable
2434+ # expansion for a subsequent eval.
2435 # Many Bourne shells cannot handle close brackets correctly
2436 # in scan sets, so we specify it separately.
2437 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
2438- _G_arg=\"$_G_arg\"
2439+ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
2440 ;;
2441+ *)
2442+ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
2443 esac
2444-
2445- func_quote_for_expand_result=$_G_arg
2446-}
2447-
2448-
2449-# func_stripname PREFIX SUFFIX NAME
2450-# ---------------------------------
2451-# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
2452-# PREFIX and SUFFIX must not contain globbing or regex special
2453-# characters, hashes, percent signs, but SUFFIX may contain a leading
2454-# dot (in which case that matches only a dot).
2455-if test yes = "$_G_HAVE_XSI_OPS"; then
2456- eval 'func_stripname ()
2457- {
2458- $debug_cmd
2459-
2460- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
2461- # positional parameters, so assign one to ordinary variable first.
2462- func_stripname_result=$3
2463- func_stripname_result=${func_stripname_result#"$1"}
2464- func_stripname_result=${func_stripname_result%"$2"}
2465- }'
2466-else
2467- func_stripname ()
2468- {
2469- $debug_cmd
2470-
2471- case $2 in
2472- .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
2473- *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
2474- esac
2475- }
2476-fi
2477-
2478-
2479-# func_show_eval CMD [FAIL_EXP]
2480-# -----------------------------
2481-# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is
2482-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
2483-# is given, then evaluate it.
2484-func_show_eval ()
2485-{
2486- $debug_cmd
2487-
2488- _G_cmd=$1
2489- _G_fail_exp=${2-':'}
2490-
2491- func_quote_for_expand "$_G_cmd"
2492- eval "func_notquiet $func_quote_for_expand_result"
2493-
2494- $opt_dry_run || {
2495- eval "$_G_cmd"
2496- _G_status=$?
2497- if test 0 -ne "$_G_status"; then
2498- eval "(exit $_G_status); $_G_fail_exp"
2499- fi
2500- }
2501 }
2502
2503
2504-# func_show_eval_locale CMD [FAIL_EXP]
2505-# ------------------------------------
2506-# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is
2507-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
2508-# is given, then evaluate it. Use the saved locale for evaluation.
2509-func_show_eval_locale ()
2510-{
2511- $debug_cmd
2512-
2513- _G_cmd=$1
2514- _G_fail_exp=${2-':'}
2515-
2516- $opt_quiet || {
2517- func_quote_for_expand "$_G_cmd"
2518- eval "func_echo $func_quote_for_expand_result"
2519- }
2520-
2521- $opt_dry_run || {
2522- eval "$_G_user_locale
2523- $_G_cmd"
2524- _G_status=$?
2525- eval "$_G_safe_locale"
2526- if test 0 -ne "$_G_status"; then
2527- eval "(exit $_G_status); $_G_fail_exp"
2528- fi
2529- }
2530-}
2531-
2532-
2533-# func_tr_sh
2534-# ----------
2535-# Turn $1 into a string suitable for a shell variable name.
2536-# Result is stored in $func_tr_sh_result. All characters
2537-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
2538-# if $1 begins with a digit, a '_' is prepended as well.
2539-func_tr_sh ()
2540+# func_quote_for_expand arg
2541+# Aesthetically quote ARG to be evaled later; same as above,
2542+# but do not quote variable references.
2543+func_quote_for_expand ()
2544 {
2545- $debug_cmd
2546-
2547 case $1 in
2548- [0-9]* | *[!a-zA-Z0-9_]*)
2549- func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
2550- ;;
2551- * )
2552- func_tr_sh_result=$1
2553- ;;
2554- esac
2555-}
2556-
2557-
2558-# func_verbose ARG...
2559-# -------------------
2560-# Echo program name prefixed message in verbose mode only.
2561-func_verbose ()
2562-{
2563- $debug_cmd
2564-
2565- $opt_verbose && func_echo "$*"
2566-
2567- :
2568-}
2569-
2570-
2571-# func_warn_and_continue ARG...
2572-# -----------------------------
2573-# Echo program name prefixed warning message to standard error.
2574-func_warn_and_continue ()
2575-{
2576- $debug_cmd
2577-
2578- $require_term_colors
2579-
2580- func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
2581-}
2582-
2583-
2584-# func_warning CATEGORY ARG...
2585-# ----------------------------
2586-# Echo program name prefixed warning message to standard error. Warning
2587-# messages can be filtered according to CATEGORY, where this function
2588-# elides messages where CATEGORY is not listed in the global variable
2589-# 'opt_warning_types'.
2590-func_warning ()
2591-{
2592- $debug_cmd
2593-
2594- # CATEGORY must be in the warning_categories list!
2595- case " $warning_categories " in
2596- *" $1 "*) ;;
2597- *) func_internal_error "invalid warning category '$1'" ;;
2598- esac
2599-
2600- _G_category=$1
2601- shift
2602-
2603- case " $opt_warning_types " in
2604- *" $_G_category "*) $warning_func ${1+"$@"} ;;
2605- esac
2606-}
2607-
2608-
2609-# func_sort_ver VER1 VER2
2610-# -----------------------
2611-# 'sort -V' is not generally available.
2612-# Note this deviates from the version comparison in automake
2613-# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
2614-# but this should suffice as we won't be specifying old
2615-# version formats or redundant trailing .0 in bootstrap.conf.
2616-# If we did want full compatibility then we should probably
2617-# use m4_version_compare from autoconf.
2618-func_sort_ver ()
2619-{
2620- $debug_cmd
2621-
2622- printf '%s\n%s\n' "$1" "$2" \
2623- | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
2624-}
2625-
2626-# func_lt_ver PREV CURR
2627-# ---------------------
2628-# Return true if PREV and CURR are in the correct order according to
2629-# func_sort_ver, otherwise false. Use it like this:
2630-#
2631-# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
2632-func_lt_ver ()
2633-{
2634- $debug_cmd
2635-
2636- test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
2637-}
2638-
2639-
2640-# Local variables:
2641-# mode: shell-script
2642-# sh-indentation: 2
2643-# eval: (add-hook 'before-save-hook 'time-stamp)
2644-# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
2645-# time-stamp-time-zone: "UTC"
2646-# End:
2647-#! /bin/sh
2648-
2649-# Set a version string for this script.
2650-scriptversion=2014-01-07.03; # UTC
2651-
2652-# A portable, pluggable option parser for Bourne shell.
2653-# Written by Gary V. Vaughan, 2010
2654-
2655-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
2656-# This is free software; see the source for copying conditions. There is NO
2657-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
2658-
2659-# This program is free software: you can redistribute it and/or modify
2660-# it under the terms of the GNU General Public License as published by
2661-# the Free Software Foundation, either version 3 of the License, or
2662-# (at your option) any later version.
2663-
2664-# This program is distributed in the hope that it will be useful,
2665-# but WITHOUT ANY WARRANTY; without even the implied warranty of
2666-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2667-# GNU General Public License for more details.
2668-
2669-# You should have received a copy of the GNU General Public License
2670-# along with this program. If not, see <http://www.gnu.org/licenses/>.
2671-
2672-# Please report bugs or propose patches to gary@gnu.org.
2673-
2674-
2675-## ------ ##
2676-## Usage. ##
2677-## ------ ##
2678-
2679-# This file is a library for parsing options in your shell scripts along
2680-# with assorted other useful supporting features that you can make use
2681-# of too.
2682-#
2683-# For the simplest scripts you might need only:
2684-#
2685-# #!/bin/sh
2686-# . relative/path/to/funclib.sh
2687-# . relative/path/to/options-parser
2688-# scriptversion=1.0
2689-# func_options ${1+"$@"}
2690-# eval set dummy "$func_options_result"; shift
2691-# ...rest of your script...
2692-#
2693-# In order for the '--version' option to work, you will need to have a
2694-# suitably formatted comment like the one at the top of this file
2695-# starting with '# Written by ' and ending with '# warranty; '.
2696-#
2697-# For '-h' and '--help' to work, you will also need a one line
2698-# description of your script's purpose in a comment directly above the
2699-# '# Written by ' line, like the one at the top of this file.
2700-#
2701-# The default options also support '--debug', which will turn on shell
2702-# execution tracing (see the comment above debug_cmd below for another
2703-# use), and '--verbose' and the func_verbose function to allow your script
2704-# to display verbose messages only when your user has specified
2705-# '--verbose'.
2706-#
2707-# After sourcing this file, you can plug processing for additional
2708-# options by amending the variables from the 'Configuration' section
2709-# below, and following the instructions in the 'Option parsing'
2710-# section further down.
2711-
2712-## -------------- ##
2713-## Configuration. ##
2714-## -------------- ##
2715-
2716-# You should override these variables in your script after sourcing this
2717-# file so that they reflect the customisations you have added to the
2718-# option parser.
2719-
2720-# The usage line for option parsing errors and the start of '-h' and
2721-# '--help' output messages. You can embed shell variables for delayed
2722-# expansion at the time the message is displayed, but you will need to
2723-# quote other shell meta-characters carefully to prevent them being
2724-# expanded when the contents are evaled.
2725-usage='$progpath [OPTION]...'
2726-
2727-# Short help message in response to '-h' and '--help'. Add to this or
2728-# override it after sourcing this library to reflect the full set of
2729-# options your script accepts.
2730-usage_message="\
2731- --debug enable verbose shell tracing
2732- -W, --warnings=CATEGORY
2733- report the warnings falling in CATEGORY [all]
2734- -v, --verbose verbosely report processing
2735- --version print version information and exit
2736- -h, --help print short or long help message and exit
2737-"
2738-
2739-# Additional text appended to 'usage_message' in response to '--help'.
2740-long_help_message="
2741-Warning categories include:
2742- 'all' show all warnings
2743- 'none' turn off all the warnings
2744- 'error' warnings are treated as fatal errors"
2745-
2746-# Help message printed before fatal option parsing errors.
2747-fatal_help="Try '\$progname --help' for more information."
2748-
2749-
2750-
2751-## ------------------------- ##
2752-## Hook function management. ##
2753-## ------------------------- ##
2754-
2755-# This section contains functions for adding, removing, and running hooks
2756-# to the main code. A hook is just a named list of of function, that can
2757-# be run in order later on.
2758-
2759-# func_hookable FUNC_NAME
2760-# -----------------------
2761-# Declare that FUNC_NAME will run hooks added with
2762-# 'func_add_hook FUNC_NAME ...'.
2763-func_hookable ()
2764-{
2765- $debug_cmd
2766-
2767- func_append hookable_fns " $1"
2768-}
2769-
2770-
2771-# func_add_hook FUNC_NAME HOOK_FUNC
2772-# ---------------------------------
2773-# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must
2774-# first have been declared "hookable" by a call to 'func_hookable'.
2775-func_add_hook ()
2776-{
2777- $debug_cmd
2778-
2779- case " $hookable_fns " in
2780- *" $1 "*) ;;
2781- *) func_fatal_error "'$1' does not accept hook functions." ;;
2782- esac
2783-
2784- eval func_append ${1}_hooks '" $2"'
2785-}
2786-
2787-
2788-# func_remove_hook FUNC_NAME HOOK_FUNC
2789-# ------------------------------------
2790-# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
2791-func_remove_hook ()
2792-{
2793- $debug_cmd
2794-
2795- eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
2796-}
2797-
2798-
2799-# func_run_hooks FUNC_NAME [ARG]...
2800-# ---------------------------------
2801-# Run all hook functions registered to FUNC_NAME.
2802-# It is assumed that the list of hook functions contains nothing more
2803-# than a whitespace-delimited list of legal shell function names, and
2804-# no effort is wasted trying to catch shell meta-characters or preserve
2805-# whitespace.
2806-func_run_hooks ()
2807-{
2808- $debug_cmd
2809-
2810- case " $hookable_fns " in
2811- *" $1 "*) ;;
2812- *) func_fatal_error "'$1' does not support hook funcions.n" ;;
2813+ *[\\\`\"]*)
2814+ my_arg=`$ECHO "$1" | $SED \
2815+ -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
2816+ *)
2817+ my_arg="$1" ;;
2818 esac
2819
2820- eval _G_hook_fns=\$$1_hooks; shift
2821-
2822- for _G_hook in $_G_hook_fns; do
2823- eval $_G_hook '"$@"'
2824-
2825- # store returned options list back into positional
2826- # parameters for next 'cmd' execution.
2827- eval _G_hook_result=\$${_G_hook}_result
2828- eval set dummy "$_G_hook_result"; shift
2829- done
2830-
2831- func_quote_for_eval ${1+"$@"}
2832- func_run_hooks_result=$func_quote_for_eval_result
2833-}
2834-
2835-
2836-
2837-## --------------- ##
2838-## Option parsing. ##
2839-## --------------- ##
2840-
2841-# In order to add your own option parsing hooks, you must accept the
2842-# full positional parameter list in your hook function, remove any
2843-# options that you action, and then pass back the remaining unprocessed
2844-# options in '<hooked_function_name>_result', escaped suitably for
2845-# 'eval'. Like this:
2846-#
2847-# my_options_prep ()
2848-# {
2849-# $debug_cmd
2850-#
2851-# # Extend the existing usage message.
2852-# usage_message=$usage_message'
2853-# -s, --silent don'\''t print informational messages
2854-# '
2855-#
2856-# func_quote_for_eval ${1+"$@"}
2857-# my_options_prep_result=$func_quote_for_eval_result
2858-# }
2859-# func_add_hook func_options_prep my_options_prep
2860-#
2861-#
2862-# my_silent_option ()
2863-# {
2864-# $debug_cmd
2865-#
2866-# # Note that for efficiency, we parse as many options as we can
2867-# # recognise in a loop before passing the remainder back to the
2868-# # caller on the first unrecognised argument we encounter.
2869-# while test $# -gt 0; do
2870-# opt=$1; shift
2871-# case $opt in
2872-# --silent|-s) opt_silent=: ;;
2873-# # Separate non-argument short options:
2874-# -s*) func_split_short_opt "$_G_opt"
2875-# set dummy "$func_split_short_opt_name" \
2876-# "-$func_split_short_opt_arg" ${1+"$@"}
2877-# shift
2878-# ;;
2879-# *) set dummy "$_G_opt" "$*"; shift; break ;;
2880-# esac
2881-# done
2882-#
2883-# func_quote_for_eval ${1+"$@"}
2884-# my_silent_option_result=$func_quote_for_eval_result
2885-# }
2886-# func_add_hook func_parse_options my_silent_option
2887-#
2888-#
2889-# my_option_validation ()
2890-# {
2891-# $debug_cmd
2892-#
2893-# $opt_silent && $opt_verbose && func_fatal_help "\
2894-# '--silent' and '--verbose' options are mutually exclusive."
2895-#
2896-# func_quote_for_eval ${1+"$@"}
2897-# my_option_validation_result=$func_quote_for_eval_result
2898-# }
2899-# func_add_hook func_validate_options my_option_validation
2900-#
2901-# You'll alse need to manually amend $usage_message to reflect the extra
2902-# options you parse. It's preferable to append if you can, so that
2903-# multiple option parsing hooks can be added safely.
2904-
2905-
2906-# func_options [ARG]...
2907-# ---------------------
2908-# All the functions called inside func_options are hookable. See the
2909-# individual implementations for details.
2910-func_hookable func_options
2911-func_options ()
2912-{
2913- $debug_cmd
2914-
2915- func_options_prep ${1+"$@"}
2916- eval func_parse_options \
2917- ${func_options_prep_result+"$func_options_prep_result"}
2918- eval func_validate_options \
2919- ${func_parse_options_result+"$func_parse_options_result"}
2920-
2921- eval func_run_hooks func_options \
2922- ${func_validate_options_result+"$func_validate_options_result"}
2923+ case $my_arg in
2924+ # Double-quote args containing shell metacharacters to delay
2925+ # word splitting and command substitution for a subsequent eval.
2926+ # Many Bourne shells cannot handle close brackets correctly
2927+ # in scan sets, so we specify it separately.
2928+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
2929+ my_arg="\"$my_arg\""
2930+ ;;
2931+ esac
2932
2933- # save modified positional parameters for caller
2934- func_options_result=$func_run_hooks_result
2935+ func_quote_for_expand_result="$my_arg"
2936 }
2937
2938
2939-# func_options_prep [ARG]...
2940-# --------------------------
2941-# All initialisations required before starting the option parse loop.
2942-# Note that when calling hook functions, we pass through the list of
2943-# positional parameters. If a hook function modifies that list, and
2944-# needs to propogate that back to rest of this script, then the complete
2945-# modified list must be put in 'func_run_hooks_result' before
2946-# returning.
2947-func_hookable func_options_prep
2948-func_options_prep ()
2949+# func_show_eval cmd [fail_exp]
2950+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
2951+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
2952+# is given, then evaluate it.
2953+func_show_eval ()
2954 {
2955- $debug_cmd
2956-
2957- # Option defaults:
2958- opt_verbose=false
2959- opt_warning_types=
2960+ my_cmd="$1"
2961+ my_fail_exp="${2-:}"
2962
2963- func_run_hooks func_options_prep ${1+"$@"}
2964+ ${opt_silent-false} || {
2965+ func_quote_for_expand "$my_cmd"
2966+ eval "func_echo $func_quote_for_expand_result"
2967+ }
2968
2969- # save modified positional parameters for caller
2970- func_options_prep_result=$func_run_hooks_result
2971+ if ${opt_dry_run-false}; then :; else
2972+ eval "$my_cmd"
2973+ my_status=$?
2974+ if test "$my_status" -eq 0; then :; else
2975+ eval "(exit $my_status); $my_fail_exp"
2976+ fi
2977+ fi
2978 }
2979
2980
2981-# func_parse_options [ARG]...
2982-# ---------------------------
2983-# The main option parsing loop.
2984-func_hookable func_parse_options
2985-func_parse_options ()
2986+# func_show_eval_locale cmd [fail_exp]
2987+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
2988+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
2989+# is given, then evaluate it. Use the saved locale for evaluation.
2990+func_show_eval_locale ()
2991 {
2992- $debug_cmd
2993-
2994- func_parse_options_result=
2995-
2996- # this just eases exit handling
2997- while test $# -gt 0; do
2998- # Defer to hook functions for initial option parsing, so they
2999- # get priority in the event of reusing an option name.
3000- func_run_hooks func_parse_options ${1+"$@"}
3001-
3002- # Adjust func_parse_options positional parameters to match
3003- eval set dummy "$func_run_hooks_result"; shift
3004-
3005- # Break out of the loop if we already parsed every option.
3006- test $# -gt 0 || break
3007-
3008- _G_opt=$1
3009- shift
3010- case $_G_opt in
3011- --debug|-x) debug_cmd='set -x'
3012- func_echo "enabling shell trace mode"
3013- $debug_cmd
3014- ;;
3015-
3016- --no-warnings|--no-warning|--no-warn)
3017- set dummy --warnings none ${1+"$@"}
3018- shift
3019- ;;
3020+ my_cmd="$1"
3021+ my_fail_exp="${2-:}"
3022
3023- --warnings|--warning|-W)
3024- test $# = 0 && func_missing_arg $_G_opt && break
3025- case " $warning_categories $1" in
3026- *" $1 "*)
3027- # trailing space prevents matching last $1 above
3028- func_append_uniq opt_warning_types " $1"
3029- ;;
3030- *all)
3031- opt_warning_types=$warning_categories
3032- ;;
3033- *none)
3034- opt_warning_types=none
3035- warning_func=:
3036- ;;
3037- *error)
3038- opt_warning_types=$warning_categories
3039- warning_func=func_fatal_error
3040- ;;
3041- *)
3042- func_fatal_error \
3043- "unsupported warning category: '$1'"
3044- ;;
3045- esac
3046- shift
3047- ;;
3048-
3049- --verbose|-v) opt_verbose=: ;;
3050- --version) func_version ;;
3051- -\?|-h) func_usage ;;
3052- --help) func_help ;;
3053-
3054- # Separate optargs to long options (plugins may need this):
3055- --*=*) func_split_equals "$_G_opt"
3056- set dummy "$func_split_equals_lhs" \
3057- "$func_split_equals_rhs" ${1+"$@"}
3058- shift
3059- ;;
3060-
3061- # Separate optargs to short options:
3062- -W*)
3063- func_split_short_opt "$_G_opt"
3064- set dummy "$func_split_short_opt_name" \
3065- "$func_split_short_opt_arg" ${1+"$@"}
3066- shift
3067- ;;
3068-
3069- # Separate non-argument short options:
3070- -\?*|-h*|-v*|-x*)
3071- func_split_short_opt "$_G_opt"
3072- set dummy "$func_split_short_opt_name" \
3073- "-$func_split_short_opt_arg" ${1+"$@"}
3074- shift
3075- ;;
3076-
3077- --) break ;;
3078- -*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
3079- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
3080- esac
3081- done
3082+ ${opt_silent-false} || {
3083+ func_quote_for_expand "$my_cmd"
3084+ eval "func_echo $func_quote_for_expand_result"
3085+ }
3086
3087- # save modified positional parameters for caller
3088- func_quote_for_eval ${1+"$@"}
3089- func_parse_options_result=$func_quote_for_eval_result
3090+ if ${opt_dry_run-false}; then :; else
3091+ eval "$lt_user_locale
3092+ $my_cmd"
3093+ my_status=$?
3094+ eval "$lt_safe_locale"
3095+ if test "$my_status" -eq 0; then :; else
3096+ eval "(exit $my_status); $my_fail_exp"
3097+ fi
3098+ fi
3099 }
3100
3101-
3102-# func_validate_options [ARG]...
3103-# ------------------------------
3104-# Perform any sanity checks on option settings and/or unconsumed
3105-# arguments.
3106-func_hookable func_validate_options
3107-func_validate_options ()
3108+# func_tr_sh
3109+# Turn $1 into a string suitable for a shell variable name.
3110+# Result is stored in $func_tr_sh_result. All characters
3111+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
3112+# if $1 begins with a digit, a '_' is prepended as well.
3113+func_tr_sh ()
3114 {
3115- $debug_cmd
3116-
3117- # Display all warnings if -W was not given.
3118- test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
3119-
3120- func_run_hooks func_validate_options ${1+"$@"}
3121-
3122- # Bail if the options were screwed!
3123- $exit_cmd $EXIT_FAILURE
3124-
3125- # save modified positional parameters for caller
3126- func_validate_options_result=$func_run_hooks_result
3127+ case $1 in
3128+ [0-9]* | *[!a-zA-Z0-9_]*)
3129+ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
3130+ ;;
3131+ * )
3132+ func_tr_sh_result=$1
3133+ ;;
3134+ esac
3135 }
3136
3137
3138+# func_version
3139+# Echo version message to standard output and exit.
3140+func_version ()
3141+{
3142+ $opt_debug
3143
3144-## ----------------- ##
3145-## Helper functions. ##
3146-## ----------------- ##
3147-
3148-# This section contains the helper functions used by the rest of the
3149-# hookable option parser framework in ascii-betical order.
3150-
3151+ $SED -n '/(C)/!b go
3152+ :more
3153+ /\./!{
3154+ N
3155+ s/\n# / /
3156+ b more
3157+ }
3158+ :go
3159+ /^# '$PROGRAM' (GNU /,/# warranty; / {
3160+ s/^# //
3161+ s/^# *$//
3162+ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
3163+ p
3164+ }' < "$progpath"
3165+ exit $?
3166+}
3167
3168-# func_fatal_help ARG...
3169-# ----------------------
3170-# Echo program name prefixed message to standard error, followed by
3171-# a help hint, and exit.
3172-func_fatal_help ()
3173+# func_usage
3174+# Echo short help message to standard output and exit.
3175+func_usage ()
3176 {
3177- $debug_cmd
3178+ $opt_debug
3179
3180- eval \$ECHO \""Usage: $usage"\"
3181- eval \$ECHO \""$fatal_help"\"
3182- func_error ${1+"$@"}
3183- exit $EXIT_FAILURE
3184+ $SED -n '/^# Usage:/,/^# *.*--help/ {
3185+ s/^# //
3186+ s/^# *$//
3187+ s/\$progname/'$progname'/
3188+ p
3189+ }' < "$progpath"
3190+ echo
3191+ $ECHO "run \`$progname --help | more' for full usage"
3192+ exit $?
3193 }
3194
3195-
3196-# func_help
3197-# ---------
3198-# Echo long help message to standard output and exit.
3199+# func_help [NOEXIT]
3200+# Echo long help message to standard output and exit,
3201+# unless 'noexit' is passed as argument.
3202 func_help ()
3203 {
3204- $debug_cmd
3205-
3206- func_usage_message
3207- $ECHO "$long_help_message"
3208- exit 0
3209+ $opt_debug
3210+
3211+ $SED -n '/^# Usage:/,/# Report bugs to/ {
3212+ :print
3213+ s/^# //
3214+ s/^# *$//
3215+ s*\$progname*'$progname'*
3216+ s*\$host*'"$host"'*
3217+ s*\$SHELL*'"$SHELL"'*
3218+ s*\$LTCC*'"$LTCC"'*
3219+ s*\$LTCFLAGS*'"$LTCFLAGS"'*
3220+ s*\$LD*'"$LD"'*
3221+ s/\$with_gnu_ld/'"$with_gnu_ld"'/
3222+ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
3223+ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
3224+ p
3225+ d
3226+ }
3227+ /^# .* home page:/b print
3228+ /^# General help using/b print
3229+ ' < "$progpath"
3230+ ret=$?
3231+ if test -z "$1"; then
3232+ exit $ret
3233+ fi
3234 }
3235
3236-
3237-# func_missing_arg ARGNAME
3238-# ------------------------
3239+# func_missing_arg argname
3240 # Echo program name prefixed message to standard error and set global
3241 # exit_cmd.
3242 func_missing_arg ()
3243 {
3244- $debug_cmd
3245+ $opt_debug
3246
3247- func_error "Missing argument for '$1'."
3248+ func_error "missing argument for $1."
3249 exit_cmd=exit
3250 }
3251
3252
3253-# func_split_equals STRING
3254-# ------------------------
3255-# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
3256-# splitting STRING at the '=' sign.
3257-test -z "$_G_HAVE_XSI_OPS" \
3258- && (eval 'x=a/b/c;
3259- test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
3260- && _G_HAVE_XSI_OPS=yes
3261-
3262-if test yes = "$_G_HAVE_XSI_OPS"
3263-then
3264- # This is an XSI compatible shell, allowing a faster implementation...
3265- eval 'func_split_equals ()
3266- {
3267- $debug_cmd
3268-
3269- func_split_equals_lhs=${1%%=*}
3270- func_split_equals_rhs=${1#*=}
3271- test "x$func_split_equals_lhs" = "x$1" \
3272- && func_split_equals_rhs=
3273- }'
3274-else
3275- # ...otherwise fall back to using expr, which is often a shell builtin.
3276- func_split_equals ()
3277- {
3278- $debug_cmd
3279-
3280- func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
3281- func_split_equals_rhs=
3282- test "x$func_split_equals_lhs" = "x$1" \
3283- || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
3284- }
3285-fi #func_split_equals
3286-
3287-
3288-# func_split_short_opt SHORTOPT
3289-# -----------------------------
3290+# func_split_short_opt shortopt
3291 # Set func_split_short_opt_name and func_split_short_opt_arg shell
3292 # variables after splitting SHORTOPT after the 2nd character.
3293-if test yes = "$_G_HAVE_XSI_OPS"
3294-then
3295- # This is an XSI compatible shell, allowing a faster implementation...
3296- eval 'func_split_short_opt ()
3297- {
3298- $debug_cmd
3299-
3300- func_split_short_opt_arg=${1#??}
3301- func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
3302- }'
3303-else
3304- # ...otherwise fall back to using expr, which is often a shell builtin.
3305- func_split_short_opt ()
3306- {
3307- $debug_cmd
3308-
3309- func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
3310- func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
3311- }
3312-fi #func_split_short_opt
3313-
3314-
3315-# func_usage
3316-# ----------
3317-# Echo short help message to standard output and exit.
3318-func_usage ()
3319+func_split_short_opt ()
3320 {
3321- $debug_cmd
3322+ my_sed_short_opt='1s/^\(..\).*$/\1/;q'
3323+ my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
3324
3325- func_usage_message
3326- $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
3327- exit 0
3328-}
3329+ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
3330+ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
3331+} # func_split_short_opt may be replaced by extended shell implementation
3332
3333
3334-# func_usage_message
3335-# ------------------
3336-# Echo short help message to standard output.
3337-func_usage_message ()
3338+# func_split_long_opt longopt
3339+# Set func_split_long_opt_name and func_split_long_opt_arg shell
3340+# variables after splitting LONGOPT at the `=' sign.
3341+func_split_long_opt ()
3342 {
3343- $debug_cmd
3344+ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
3345+ my_sed_long_arg='1s/^--[^=]*=//'
3346
3347- eval \$ECHO \""Usage: $usage"\"
3348- echo
3349- $SED -n 's|^# ||
3350- /^Written by/{
3351- x;p;x
3352- }
3353- h
3354- /^Written by/q' < "$progpath"
3355- echo
3356- eval \$ECHO \""$usage_message"\"
3357-}
3358+ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
3359+ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
3360+} # func_split_long_opt may be replaced by extended shell implementation
3361
3362+exit_cmd=:
3363
3364-# func_version
3365-# ------------
3366-# Echo version message to standard output and exit.
3367-func_version ()
3368-{
3369- $debug_cmd
3370
3371- printf '%s\n' "$progname $scriptversion"
3372- $SED -n '
3373- /(C)/!b go
3374- :more
3375- /\./!{
3376- N
3377- s|\n# | |
3378- b more
3379- }
3380- :go
3381- /^# Written by /,/# warranty; / {
3382- s|^# ||
3383- s|^# *$||
3384- s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
3385- p
3386- }
3387- /^# Written by / {
3388- s|^# ||
3389- p
3390- }
3391- /^warranty; /q' < "$progpath"
3392
3393- exit $?
3394-}
3395
3396
3397-# Local variables:
3398-# mode: shell-script
3399-# sh-indentation: 2
3400-# eval: (add-hook 'before-save-hook 'time-stamp)
3401-# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
3402-# time-stamp-time-zone: "UTC"
3403-# End:
3404+magic="%%%MAGIC variable%%%"
3405+magic_exe="%%%MAGIC EXE variable%%%"
3406
3407-# Set a version string.
3408-scriptversion='(GNU libtool) 2.4.6'
3409+# Global variables.
3410+nonopt=
3411+preserve_args=
3412+lo2o="s/\\.lo\$/.${objext}/"
3413+o2lo="s/\\.${objext}\$/.lo/"
3414+extracted_archives=
3415+extracted_serial=0
3416
3417+# If this variable is set in any of the actions, the command in it
3418+# will be execed at the end. This prevents here-documents from being
3419+# left over by shells.
3420+exec_cmd=
3421
3422-# func_echo ARG...
3423-# ----------------
3424-# Libtool also displays the current mode in messages, so override
3425-# funclib.sh func_echo with this custom definition.
3426-func_echo ()
3427+# func_append var value
3428+# Append VALUE to the end of shell variable VAR.
3429+func_append ()
3430 {
3431- $debug_cmd
3432+ eval "${1}=\$${1}\${2}"
3433+} # func_append may be replaced by extended shell implementation
3434
3435- _G_message=$*
3436-
3437- func_echo_IFS=$IFS
3438- IFS=$nl
3439- for _G_line in $_G_message; do
3440- IFS=$func_echo_IFS
3441- $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
3442- done
3443- IFS=$func_echo_IFS
3444-}
3445-
3446-
3447-# func_warning ARG...
3448-# -------------------
3449-# Libtool warnings are not categorized, so override funclib.sh
3450-# func_warning with this simpler definition.
3451-func_warning ()
3452+# func_append_quoted var value
3453+# Quote VALUE and append to the end of shell variable VAR, separated
3454+# by a space.
3455+func_append_quoted ()
3456 {
3457- $debug_cmd
3458+ func_quote_for_eval "${2}"
3459+ eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
3460+} # func_append_quoted may be replaced by extended shell implementation
3461
3462- $warning_func ${1+"$@"}
3463-}
3464-
3465-
3466-## ---------------- ##
3467-## Options parsing. ##
3468-## ---------------- ##
3469-
3470-# Hook in the functions to make sure our own options are parsed during
3471-# the option parsing loop.
3472-
3473-usage='$progpath [OPTION]... [MODE-ARG]...'
3474-
3475-# Short help message in response to '-h'.
3476-usage_message="Options:
3477- --config show all configuration variables
3478- --debug enable verbose shell tracing
3479- -n, --dry-run display commands without modifying any files
3480- --features display basic configuration information and exit
3481- --mode=MODE use operation mode MODE
3482- --no-warnings equivalent to '-Wnone'
3483- --preserve-dup-deps don't remove duplicate dependency libraries
3484- --quiet, --silent don't print informational messages
3485- --tag=TAG use configuration variables from tag TAG
3486- -v, --verbose print more informational messages than default
3487- --version print version information
3488- -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all]
3489- -h, --help, --help-all print short, long, or detailed help message
3490-"
3491
3492-# Additional text appended to 'usage_message' in response to '--help'.
3493-func_help ()
3494+# func_arith arithmetic-term...
3495+func_arith ()
3496 {
3497- $debug_cmd
3498-
3499- func_usage_message
3500- $ECHO "$long_help_message
3501-
3502-MODE must be one of the following:
3503-
3504- clean remove files from the build directory
3505- compile compile a source file into a libtool object
3506- execute automatically set library path, then run a program
3507- finish complete the installation of libtool libraries
3508- install install libraries or executables
3509- link create a library or an executable
3510- uninstall remove libraries from an installed directory
3511-
3512-MODE-ARGS vary depending on the MODE. When passed as first option,
3513-'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
3514-Try '$progname --help --mode=MODE' for a more detailed description of MODE.
3515-
3516-When reporting a bug, please describe a test case to reproduce it and
3517-include the following information:
3518-
3519- host-triplet: $host
3520- shell: $SHELL
3521- compiler: $LTCC
3522- compiler flags: $LTCFLAGS
3523- linker: $LD (gnu? $with_gnu_ld)
3524- version: $progname (GNU libtool) 2.4.6
3525- automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
3526- autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
3527-
3528-Report bugs to <bug-libtool@gnu.org>.
3529-GNU libtool home page: <http://www.gnu.org/software/libtool/>.
3530-General help using GNU software: <http://www.gnu.org/gethelp/>."
3531- exit 0
3532-}
3533+ func_arith_result=`expr "${@}"`
3534+} # func_arith may be replaced by extended shell implementation
3535
3536
3537-# func_lo2o OBJECT-NAME
3538-# ---------------------
3539-# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
3540-# object suffix.
3541+# func_len string
3542+# STRING may not start with a hyphen.
3543+func_len ()
3544+{
3545+ func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
3546+} # func_len may be replaced by extended shell implementation
3547
3548-lo2o=s/\\.lo\$/.$objext/
3549-o2lo=s/\\.$objext\$/.lo/
3550
3551-if test yes = "$_G_HAVE_XSI_OPS"; then
3552- eval 'func_lo2o ()
3553- {
3554- case $1 in
3555- *.lo) func_lo2o_result=${1%.lo}.$objext ;;
3556- * ) func_lo2o_result=$1 ;;
3557- esac
3558- }'
3559+# func_lo2o object
3560+func_lo2o ()
3561+{
3562+ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
3563+} # func_lo2o may be replaced by extended shell implementation
3564
3565- # func_xform LIBOBJ-OR-SOURCE
3566- # ---------------------------
3567- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
3568- # suffix to a '.lo' libtool-object suffix.
3569- eval 'func_xform ()
3570- {
3571- func_xform_result=${1%.*}.lo
3572- }'
3573-else
3574- # ...otherwise fall back to using sed.
3575- func_lo2o ()
3576- {
3577- func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
3578- }
3579
3580- func_xform ()
3581- {
3582- func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
3583- }
3584-fi
3585+# func_xform libobj-or-source
3586+func_xform ()
3587+{
3588+ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
3589+} # func_xform may be replaced by extended shell implementation
3590
3591
3592-# func_fatal_configuration ARG...
3593-# -------------------------------
3594+# func_fatal_configuration arg...
3595 # Echo program name prefixed message to standard error, followed by
3596 # a configuration failure hint, and exit.
3597 func_fatal_configuration ()
3598 {
3599- func__fatal_error ${1+"$@"} \
3600- "See the $PACKAGE documentation for more information." \
3601- "Fatal configuration error."
3602+ func_error ${1+"$@"}
3603+ func_error "See the $PACKAGE documentation for more information."
3604+ func_fatal_error "Fatal configuration error."
3605 }
3606
3607
3608 # func_config
3609-# -----------
3610 # Display the configuration for all the tags in this script.
3611 func_config ()
3612 {
3613@@ -2149,19 +915,17 @@ func_config ()
3614 exit $?
3615 }
3616
3617-
3618 # func_features
3619-# -------------
3620 # Display the features supported by this script.
3621 func_features ()
3622 {
3623 echo "host: $host"
3624- if test yes = "$build_libtool_libs"; then
3625+ if test "$build_libtool_libs" = yes; then
3626 echo "enable shared libraries"
3627 else
3628 echo "disable shared libraries"
3629 fi
3630- if test yes = "$build_old_libs"; then
3631+ if test "$build_old_libs" = yes; then
3632 echo "enable static libraries"
3633 else
3634 echo "disable static libraries"
3635@@ -2170,297 +934,289 @@ func_features ()
3636 exit $?
3637 }
3638
3639-
3640-# func_enable_tag TAGNAME
3641-# -----------------------
3642+# func_enable_tag tagname
3643 # Verify that TAGNAME is valid, and either flag an error and exit, or
3644 # enable the TAGNAME tag. We also add TAGNAME to the global $taglist
3645 # variable here.
3646 func_enable_tag ()
3647 {
3648- # Global variable:
3649- tagname=$1
3650+ # Global variable:
3651+ tagname="$1"
3652
3653- re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
3654- re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
3655- sed_extractcf=/$re_begincf/,/$re_endcf/p
3656+ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
3657+ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
3658+ sed_extractcf="/$re_begincf/,/$re_endcf/p"
3659
3660- # Validate tagname.
3661- case $tagname in
3662- *[!-_A-Za-z0-9,/]*)
3663- func_fatal_error "invalid tag name: $tagname"
3664- ;;
3665- esac
3666+ # Validate tagname.
3667+ case $tagname in
3668+ *[!-_A-Za-z0-9,/]*)
3669+ func_fatal_error "invalid tag name: $tagname"
3670+ ;;
3671+ esac
3672
3673- # Don't test for the "default" C tag, as we know it's
3674- # there but not specially marked.
3675- case $tagname in
3676- CC) ;;
3677+ # Don't test for the "default" C tag, as we know it's
3678+ # there but not specially marked.
3679+ case $tagname in
3680+ CC) ;;
3681 *)
3682- if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
3683- taglist="$taglist $tagname"
3684-
3685- # Evaluate the configuration. Be careful to quote the path
3686- # and the sed script, to avoid splitting on whitespace, but
3687- # also don't use non-portable quotes within backquotes within
3688- # quotes we have to do it in 2 steps:
3689- extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
3690- eval "$extractedcf"
3691- else
3692- func_error "ignoring unknown tag $tagname"
3693- fi
3694- ;;
3695- esac
3696+ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
3697+ taglist="$taglist $tagname"
3698+
3699+ # Evaluate the configuration. Be careful to quote the path
3700+ # and the sed script, to avoid splitting on whitespace, but
3701+ # also don't use non-portable quotes within backquotes within
3702+ # quotes we have to do it in 2 steps:
3703+ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
3704+ eval "$extractedcf"
3705+ else
3706+ func_error "ignoring unknown tag $tagname"
3707+ fi
3708+ ;;
3709+ esac
3710 }
3711
3712-
3713 # func_check_version_match
3714-# ------------------------
3715 # Ensure that we are using m4 macros, and libtool script from the same
3716 # release of libtool.
3717 func_check_version_match ()
3718 {
3719- if test "$package_revision" != "$macro_revision"; then
3720- if test "$VERSION" != "$macro_version"; then
3721- if test -z "$macro_version"; then
3722- cat >&2 <<_LT_EOF
3723+ if test "$package_revision" != "$macro_revision"; then
3724+ if test "$VERSION" != "$macro_version"; then
3725+ if test -z "$macro_version"; then
3726+ cat >&2 <<_LT_EOF
3727 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
3728 $progname: definition of this LT_INIT comes from an older release.
3729 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
3730 $progname: and run autoconf again.
3731 _LT_EOF
3732- else
3733- cat >&2 <<_LT_EOF
3734+ else
3735+ cat >&2 <<_LT_EOF
3736 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
3737 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
3738 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
3739 $progname: and run autoconf again.
3740 _LT_EOF
3741- fi
3742- else
3743- cat >&2 <<_LT_EOF
3744+ fi
3745+ else
3746+ cat >&2 <<_LT_EOF
3747 $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
3748 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
3749 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
3750 $progname: of $PACKAGE $VERSION and run autoconf again.
3751 _LT_EOF
3752- fi
3753-
3754- exit $EXIT_MISMATCH
3755 fi
3756-}
3757
3758+ exit $EXIT_MISMATCH
3759+ fi
3760+}
3761
3762-# libtool_options_prep [ARG]...
3763-# -----------------------------
3764-# Preparation for options parsed by libtool.
3765-libtool_options_prep ()
3766-{
3767- $debug_mode
3768
3769- # Option defaults:
3770- opt_config=false
3771- opt_dlopen=
3772- opt_dry_run=false
3773- opt_help=false
3774- opt_mode=
3775- opt_preserve_dup_deps=false
3776- opt_quiet=false
3777+# Shorthand for --mode=foo, only valid as the first argument
3778+case $1 in
3779+clean|clea|cle|cl)
3780+ shift; set dummy --mode clean ${1+"$@"}; shift
3781+ ;;
3782+compile|compil|compi|comp|com|co|c)
3783+ shift; set dummy --mode compile ${1+"$@"}; shift
3784+ ;;
3785+execute|execut|execu|exec|exe|ex|e)
3786+ shift; set dummy --mode execute ${1+"$@"}; shift
3787+ ;;
3788+finish|finis|fini|fin|fi|f)
3789+ shift; set dummy --mode finish ${1+"$@"}; shift
3790+ ;;
3791+install|instal|insta|inst|ins|in|i)
3792+ shift; set dummy --mode install ${1+"$@"}; shift
3793+ ;;
3794+link|lin|li|l)
3795+ shift; set dummy --mode link ${1+"$@"}; shift
3796+ ;;
3797+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
3798+ shift; set dummy --mode uninstall ${1+"$@"}; shift
3799+ ;;
3800+esac
3801
3802- nonopt=
3803- preserve_args=
3804
3805- # Shorthand for --mode=foo, only valid as the first argument
3806- case $1 in
3807- clean|clea|cle|cl)
3808- shift; set dummy --mode clean ${1+"$@"}; shift
3809- ;;
3810- compile|compil|compi|comp|com|co|c)
3811- shift; set dummy --mode compile ${1+"$@"}; shift
3812- ;;
3813- execute|execut|execu|exec|exe|ex|e)
3814- shift; set dummy --mode execute ${1+"$@"}; shift
3815- ;;
3816- finish|finis|fini|fin|fi|f)
3817- shift; set dummy --mode finish ${1+"$@"}; shift
3818- ;;
3819- install|instal|insta|inst|ins|in|i)
3820- shift; set dummy --mode install ${1+"$@"}; shift
3821- ;;
3822- link|lin|li|l)
3823- shift; set dummy --mode link ${1+"$@"}; shift
3824- ;;
3825- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
3826- shift; set dummy --mode uninstall ${1+"$@"}; shift
3827- ;;
3828- esac
3829
3830- # Pass back the list of options.
3831- func_quote_for_eval ${1+"$@"}
3832- libtool_options_prep_result=$func_quote_for_eval_result
3833-}
3834-func_add_hook func_options_prep libtool_options_prep
3835+# Option defaults:
3836+opt_debug=:
3837+opt_dry_run=false
3838+opt_config=false
3839+opt_preserve_dup_deps=false
3840+opt_features=false
3841+opt_finish=false
3842+opt_help=false
3843+opt_help_all=false
3844+opt_silent=:
3845+opt_warning=:
3846+opt_verbose=:
3847+opt_silent=false
3848+opt_verbose=false
3849
3850
3851-# libtool_parse_options [ARG]...
3852-# ---------------------------------
3853-# Provide handling for libtool specific options.
3854-libtool_parse_options ()
3855+# Parse options once, thoroughly. This comes as soon as possible in the
3856+# script to make things like `--version' happen as quickly as we can.
3857 {
3858- $debug_cmd
3859+ # this just eases exit handling
3860+ while test $# -gt 0; do
3861+ opt="$1"
3862+ shift
3863+ case $opt in
3864+ --debug|-x) opt_debug='set -x'
3865+ func_echo "enabling shell trace mode"
3866+ $opt_debug
3867+ ;;
3868+ --dry-run|--dryrun|-n)
3869+ opt_dry_run=:
3870+ ;;
3871+ --config)
3872+ opt_config=:
3873+func_config
3874+ ;;
3875+ --dlopen|-dlopen)
3876+ optarg="$1"
3877+ opt_dlopen="${opt_dlopen+$opt_dlopen
3878+}$optarg"
3879+ shift
3880+ ;;
3881+ --preserve-dup-deps)
3882+ opt_preserve_dup_deps=:
3883+ ;;
3884+ --features)
3885+ opt_features=:
3886+func_features
3887+ ;;
3888+ --finish)
3889+ opt_finish=:
3890+set dummy --mode finish ${1+"$@"}; shift
3891+ ;;
3892+ --help)
3893+ opt_help=:
3894+ ;;
3895+ --help-all)
3896+ opt_help_all=:
3897+opt_help=': help-all'
3898+ ;;
3899+ --mode)
3900+ test $# = 0 && func_missing_arg $opt && break
3901+ optarg="$1"
3902+ opt_mode="$optarg"
3903+case $optarg in
3904+ # Valid mode arguments:
3905+ clean|compile|execute|finish|install|link|relink|uninstall) ;;
3906+
3907+ # Catch anything else as an error
3908+ *) func_error "invalid argument for $opt"
3909+ exit_cmd=exit
3910+ break
3911+ ;;
3912+esac
3913+ shift
3914+ ;;
3915+ --no-silent|--no-quiet)
3916+ opt_silent=false
3917+func_append preserve_args " $opt"
3918+ ;;
3919+ --no-warning|--no-warn)
3920+ opt_warning=false
3921+func_append preserve_args " $opt"
3922+ ;;
3923+ --no-verbose)
3924+ opt_verbose=false
3925+func_append preserve_args " $opt"
3926+ ;;
3927+ --silent|--quiet)
3928+ opt_silent=:
3929+func_append preserve_args " $opt"
3930+ opt_verbose=false
3931+ ;;
3932+ --verbose|-v)
3933+ opt_verbose=:
3934+func_append preserve_args " $opt"
3935+opt_silent=false
3936+ ;;
3937+ --tag)
3938+ test $# = 0 && func_missing_arg $opt && break
3939+ optarg="$1"
3940+ opt_tag="$optarg"
3941+func_append preserve_args " $opt $optarg"
3942+func_enable_tag "$optarg"
3943+ shift
3944+ ;;
3945+
3946+ -\?|-h) func_usage ;;
3947+ --help) func_help ;;
3948+ --version) func_version ;;
3949+
3950+ # Separate optargs to long options:
3951+ --*=*)
3952+ func_split_long_opt "$opt"
3953+ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
3954+ shift
3955+ ;;
3956+
3957+ # Separate non-argument short options:
3958+ -\?*|-h*|-n*|-v*)
3959+ func_split_short_opt "$opt"
3960+ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
3961+ shift
3962+ ;;
3963+
3964+ --) break ;;
3965+ -*) func_fatal_help "unrecognized option \`$opt'" ;;
3966+ *) set dummy "$opt" ${1+"$@"}; shift; break ;;
3967+ esac
3968+ done
3969
3970- # Perform our own loop to consume as many options as possible in
3971- # each iteration.
3972- while test $# -gt 0; do
3973- _G_opt=$1
3974- shift
3975- case $_G_opt in
3976- --dry-run|--dryrun|-n)
3977- opt_dry_run=:
3978- ;;
3979-
3980- --config) func_config ;;
3981-
3982- --dlopen|-dlopen)
3983- opt_dlopen="${opt_dlopen+$opt_dlopen
3984-}$1"
3985- shift
3986- ;;
3987-
3988- --preserve-dup-deps)
3989- opt_preserve_dup_deps=: ;;
3990-
3991- --features) func_features ;;
3992-
3993- --finish) set dummy --mode finish ${1+"$@"}; shift ;;
3994-
3995- --help) opt_help=: ;;
3996-
3997- --help-all) opt_help=': help-all' ;;
3998-
3999- --mode) test $# = 0 && func_missing_arg $_G_opt && break
4000- opt_mode=$1
4001- case $1 in
4002- # Valid mode arguments:
4003- clean|compile|execute|finish|install|link|relink|uninstall) ;;
4004-
4005- # Catch anything else as an error
4006- *) func_error "invalid argument for $_G_opt"
4007- exit_cmd=exit
4008- break
4009- ;;
4010- esac
4011- shift
4012- ;;
4013-
4014- --no-silent|--no-quiet)
4015- opt_quiet=false
4016- func_append preserve_args " $_G_opt"
4017- ;;
4018-
4019- --no-warnings|--no-warning|--no-warn)
4020- opt_warning=false
4021- func_append preserve_args " $_G_opt"
4022- ;;
4023-
4024- --no-verbose)
4025- opt_verbose=false
4026- func_append preserve_args " $_G_opt"
4027- ;;
4028-
4029- --silent|--quiet)
4030- opt_quiet=:
4031- opt_verbose=false
4032- func_append preserve_args " $_G_opt"
4033- ;;
4034-
4035- --tag) test $# = 0 && func_missing_arg $_G_opt && break
4036- opt_tag=$1
4037- func_append preserve_args " $_G_opt $1"
4038- func_enable_tag "$1"
4039- shift
4040- ;;
4041-
4042- --verbose|-v) opt_quiet=false
4043- opt_verbose=:
4044- func_append preserve_args " $_G_opt"
4045- ;;
4046-
4047- # An option not handled by this hook function:
4048- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
4049- esac
4050- done
4051+ # Validate options:
4052
4053+ # save first non-option argument
4054+ if test "$#" -gt 0; then
4055+ nonopt="$opt"
4056+ shift
4057+ fi
4058
4059- # save modified positional parameters for caller
4060- func_quote_for_eval ${1+"$@"}
4061- libtool_parse_options_result=$func_quote_for_eval_result
4062-}
4063-func_add_hook func_parse_options libtool_parse_options
4064+ # preserve --debug
4065+ test "$opt_debug" = : || func_append preserve_args " --debug"
4066
4067+ case $host in
4068+ *cygwin* | *mingw* | *pw32* | *cegcc*)
4069+ # don't eliminate duplications in $postdeps and $predeps
4070+ opt_duplicate_compiler_generated_deps=:
4071+ ;;
4072+ *)
4073+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
4074+ ;;
4075+ esac
4076
4077+ $opt_help || {
4078+ # Sanity checks first:
4079+ func_check_version_match
4080
4081-# libtool_validate_options [ARG]...
4082-# ---------------------------------
4083-# Perform any sanity checks on option settings and/or unconsumed
4084-# arguments.
4085-libtool_validate_options ()
4086-{
4087- # save first non-option argument
4088- if test 0 -lt $#; then
4089- nonopt=$1
4090- shift
4091+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
4092+ func_fatal_configuration "not configured to build any kind of library"
4093 fi
4094
4095- # preserve --debug
4096- test : = "$debug_cmd" || func_append preserve_args " --debug"
4097-
4098- case $host in
4099- # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
4100- # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
4101- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
4102- # don't eliminate duplications in $postdeps and $predeps
4103- opt_duplicate_compiler_generated_deps=:
4104- ;;
4105- *)
4106- opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
4107- ;;
4108- esac
4109-
4110- $opt_help || {
4111- # Sanity checks first:
4112- func_check_version_match
4113+ # Darwin sucks
4114+ eval std_shrext=\"$shrext_cmds\"
4115
4116- test yes != "$build_libtool_libs" \
4117- && test yes != "$build_old_libs" \
4118- && func_fatal_configuration "not configured to build any kind of library"
4119-
4120- # Darwin sucks
4121- eval std_shrext=\"$shrext_cmds\"
4122+ # Only execute mode is allowed to have -dlopen flags.
4123+ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
4124+ func_error "unrecognized option \`-dlopen'"
4125+ $ECHO "$help" 1>&2
4126+ exit $EXIT_FAILURE
4127+ fi
4128
4129- # Only execute mode is allowed to have -dlopen flags.
4130- if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
4131- func_error "unrecognized option '-dlopen'"
4132- $ECHO "$help" 1>&2
4133- exit $EXIT_FAILURE
4134- fi
4135+ # Change the help message to a mode-specific one.
4136+ generic_help="$help"
4137+ help="Try \`$progname --help --mode=$opt_mode' for more information."
4138+ }
4139
4140- # Change the help message to a mode-specific one.
4141- generic_help=$help
4142- help="Try '$progname --help --mode=$opt_mode' for more information."
4143- }
4144
4145- # Pass back the unparsed argument list
4146- func_quote_for_eval ${1+"$@"}
4147- libtool_validate_options_result=$func_quote_for_eval_result
4148+ # Bail if the options were screwed
4149+ $exit_cmd $EXIT_FAILURE
4150 }
4151-func_add_hook func_validate_options libtool_validate_options
4152-
4153
4154-# Process options as early as possible so that --help and --version
4155-# can return quickly.
4156-func_options ${1+"$@"}
4157-eval set dummy "$func_options_result"; shift
4158
4159
4160
4161@@ -2468,52 +1224,24 @@ eval set dummy "$func_options_result"; shift
4162 ## Main. ##
4163 ## ----------- ##
4164
4165-magic='%%%MAGIC variable%%%'
4166-magic_exe='%%%MAGIC EXE variable%%%'
4167-
4168-# Global variables.
4169-extracted_archives=
4170-extracted_serial=0
4171-
4172-# If this variable is set in any of the actions, the command in it
4173-# will be execed at the end. This prevents here-documents from being
4174-# left over by shells.
4175-exec_cmd=
4176-
4177-
4178-# A function that is used when there is no print builtin or printf.
4179-func_fallback_echo ()
4180-{
4181- eval 'cat <<_LTECHO_EOF
4182-$1
4183-_LTECHO_EOF'
4184-}
4185-
4186-# func_generated_by_libtool
4187-# True iff stdin has been generated by Libtool. This function is only
4188-# a basic sanity check; it will hardly flush out determined imposters.
4189-func_generated_by_libtool_p ()
4190-{
4191- $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
4192-}
4193-
4194 # func_lalib_p file
4195-# True iff FILE is a libtool '.la' library or '.lo' object file.
4196+# True iff FILE is a libtool `.la' library or `.lo' object file.
4197 # This function is only a basic sanity check; it will hardly flush out
4198 # determined imposters.
4199 func_lalib_p ()
4200 {
4201 test -f "$1" &&
4202- $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
4203+ $SED -e 4q "$1" 2>/dev/null \
4204+ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
4205 }
4206
4207 # func_lalib_unsafe_p file
4208-# True iff FILE is a libtool '.la' library or '.lo' object file.
4209+# True iff FILE is a libtool `.la' library or `.lo' object file.
4210 # This function implements the same check as func_lalib_p without
4211 # resorting to external programs. To this end, it redirects stdin and
4212 # closes it afterwards, without saving the original file descriptor.
4213 # As a safety measure, use it only where a negative result would be
4214-# fatal anyway. Works if 'file' does not exist.
4215+# fatal anyway. Works if `file' does not exist.
4216 func_lalib_unsafe_p ()
4217 {
4218 lalib_p=no
4219@@ -2521,13 +1249,13 @@ func_lalib_unsafe_p ()
4220 for lalib_p_l in 1 2 3 4
4221 do
4222 read lalib_p_line
4223- case $lalib_p_line in
4224+ case "$lalib_p_line" in
4225 \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
4226 esac
4227 done
4228 exec 0<&5 5<&-
4229 fi
4230- test yes = "$lalib_p"
4231+ test "$lalib_p" = yes
4232 }
4233
4234 # func_ltwrapper_script_p file
4235@@ -2536,8 +1264,7 @@ func_lalib_unsafe_p ()
4236 # determined imposters.
4237 func_ltwrapper_script_p ()
4238 {
4239- test -f "$1" &&
4240- $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
4241+ func_lalib_p "$1"
4242 }
4243
4244 # func_ltwrapper_executable_p file
4245@@ -2562,7 +1289,7 @@ func_ltwrapper_scriptname ()
4246 {
4247 func_dirname_and_basename "$1" "" "."
4248 func_stripname '' '.exe' "$func_basename_result"
4249- func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
4250+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
4251 }
4252
4253 # func_ltwrapper_p file
4254@@ -2581,13 +1308,11 @@ func_ltwrapper_p ()
4255 # FAIL_CMD may read-access the current command in variable CMD!
4256 func_execute_cmds ()
4257 {
4258- $debug_cmd
4259-
4260+ $opt_debug
4261 save_ifs=$IFS; IFS='~'
4262 for cmd in $1; do
4263- IFS=$sp$nl
4264- eval cmd=\"$cmd\"
4265 IFS=$save_ifs
4266+ eval cmd=\"$cmd\"
4267 func_show_eval "$cmd" "${2-:}"
4268 done
4269 IFS=$save_ifs
4270@@ -2599,11 +1324,10 @@ func_execute_cmds ()
4271 # Note that it is not necessary on cygwin/mingw to append a dot to
4272 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
4273 # behavior happens only for exec(3), not for open(2)! Also, sourcing
4274-# 'FILE.' does not work on cygwin managed mounts.
4275+# `FILE.' does not work on cygwin managed mounts.
4276 func_source ()
4277 {
4278- $debug_cmd
4279-
4280+ $opt_debug
4281 case $1 in
4282 */* | *\\*) . "$1" ;;
4283 *) . "./$1" ;;
4284@@ -2630,10 +1354,10 @@ func_resolve_sysroot ()
4285 # store the result into func_replace_sysroot_result.
4286 func_replace_sysroot ()
4287 {
4288- case $lt_sysroot:$1 in
4289+ case "$lt_sysroot:$1" in
4290 ?*:"$lt_sysroot"*)
4291 func_stripname "$lt_sysroot" '' "$1"
4292- func_replace_sysroot_result='='$func_stripname_result
4293+ func_replace_sysroot_result="=$func_stripname_result"
4294 ;;
4295 *)
4296 # Including no sysroot.
4297@@ -2650,8 +1374,7 @@ func_replace_sysroot ()
4298 # arg is usually of the form 'gcc ...'
4299 func_infer_tag ()
4300 {
4301- $debug_cmd
4302-
4303+ $opt_debug
4304 if test -n "$available_tags" && test -z "$tagname"; then
4305 CC_quoted=
4306 for arg in $CC; do
4307@@ -2670,7 +1393,7 @@ func_infer_tag ()
4308 for z in $available_tags; do
4309 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
4310 # Evaluate the configuration.
4311- eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
4312+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
4313 CC_quoted=
4314 for arg in $CC; do
4315 # Double-quote args containing other shell metacharacters.
4316@@ -2695,7 +1418,7 @@ func_infer_tag ()
4317 # line option must be used.
4318 if test -z "$tagname"; then
4319 func_echo "unable to infer tagged configuration"
4320- func_fatal_error "specify a tag with '--tag'"
4321+ func_fatal_error "specify a tag with \`--tag'"
4322 # else
4323 # func_verbose "using $tagname tagged configuration"
4324 fi
4325@@ -2711,15 +1434,15 @@ func_infer_tag ()
4326 # but don't create it if we're doing a dry run.
4327 func_write_libtool_object ()
4328 {
4329- write_libobj=$1
4330- if test yes = "$build_libtool_libs"; then
4331- write_lobj=\'$2\'
4332+ write_libobj=${1}
4333+ if test "$build_libtool_libs" = yes; then
4334+ write_lobj=\'${2}\'
4335 else
4336 write_lobj=none
4337 fi
4338
4339- if test yes = "$build_old_libs"; then
4340- write_oldobj=\'$3\'
4341+ if test "$build_old_libs" = yes; then
4342+ write_oldobj=\'${3}\'
4343 else
4344 write_oldobj=none
4345 fi
4346@@ -2727,7 +1450,7 @@ func_write_libtool_object ()
4347 $opt_dry_run || {
4348 cat >${write_libobj}T <<EOF
4349 # $write_libobj - a libtool object file
4350-# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
4351+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
4352 #
4353 # Please DO NOT delete this file!
4354 # It is necessary for linking the library.
4355@@ -2739,7 +1462,7 @@ pic_object=$write_lobj
4356 non_pic_object=$write_oldobj
4357
4358 EOF
4359- $MV "${write_libobj}T" "$write_libobj"
4360+ $MV "${write_libobj}T" "${write_libobj}"
4361 }
4362 }
4363
4364@@ -2759,9 +1482,8 @@ EOF
4365 # be empty on error (or when ARG is empty)
4366 func_convert_core_file_wine_to_w32 ()
4367 {
4368- $debug_cmd
4369-
4370- func_convert_core_file_wine_to_w32_result=$1
4371+ $opt_debug
4372+ func_convert_core_file_wine_to_w32_result="$1"
4373 if test -n "$1"; then
4374 # Unfortunately, winepath does not exit with a non-zero error code, so we
4375 # are forced to check the contents of stdout. On the other hand, if the
4376@@ -2769,9 +1491,9 @@ func_convert_core_file_wine_to_w32 ()
4377 # *an error message* to stdout. So we must check for both error code of
4378 # zero AND non-empty stdout, which explains the odd construction:
4379 func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
4380- if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
4381+ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
4382 func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
4383- $SED -e "$sed_naive_backslashify"`
4384+ $SED -e "$lt_sed_naive_backslashify"`
4385 else
4386 func_convert_core_file_wine_to_w32_result=
4387 fi
4388@@ -2792,19 +1514,18 @@ func_convert_core_file_wine_to_w32 ()
4389 # are convertible, then the result may be empty.
4390 func_convert_core_path_wine_to_w32 ()
4391 {
4392- $debug_cmd
4393-
4394+ $opt_debug
4395 # unfortunately, winepath doesn't convert paths, only file names
4396- func_convert_core_path_wine_to_w32_result=
4397+ func_convert_core_path_wine_to_w32_result=""
4398 if test -n "$1"; then
4399 oldIFS=$IFS
4400 IFS=:
4401 for func_convert_core_path_wine_to_w32_f in $1; do
4402 IFS=$oldIFS
4403 func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
4404- if test -n "$func_convert_core_file_wine_to_w32_result"; then
4405+ if test -n "$func_convert_core_file_wine_to_w32_result" ; then
4406 if test -z "$func_convert_core_path_wine_to_w32_result"; then
4407- func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
4408+ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
4409 else
4410 func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
4411 fi
4412@@ -2833,8 +1554,7 @@ func_convert_core_path_wine_to_w32 ()
4413 # environment variable; do not put it in $PATH.
4414 func_cygpath ()
4415 {
4416- $debug_cmd
4417-
4418+ $opt_debug
4419 if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
4420 func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
4421 if test "$?" -ne 0; then
4422@@ -2843,7 +1563,7 @@ func_cygpath ()
4423 fi
4424 else
4425 func_cygpath_result=
4426- func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
4427+ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
4428 fi
4429 }
4430 #end: func_cygpath
4431@@ -2854,11 +1574,10 @@ func_cygpath ()
4432 # result in func_convert_core_msys_to_w32_result.
4433 func_convert_core_msys_to_w32 ()
4434 {
4435- $debug_cmd
4436-
4437+ $opt_debug
4438 # awkward: cmd appends spaces to result
4439 func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
4440- $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
4441+ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
4442 }
4443 #end: func_convert_core_msys_to_w32
4444
4445@@ -2869,14 +1588,13 @@ func_convert_core_msys_to_w32 ()
4446 # func_to_host_file_result to ARG1).
4447 func_convert_file_check ()
4448 {
4449- $debug_cmd
4450-
4451- if test -z "$2" && test -n "$1"; then
4452+ $opt_debug
4453+ if test -z "$2" && test -n "$1" ; then
4454 func_error "Could not determine host file name corresponding to"
4455- func_error " '$1'"
4456+ func_error " \`$1'"
4457 func_error "Continuing, but uninstalled executables may not work."
4458 # Fallback:
4459- func_to_host_file_result=$1
4460+ func_to_host_file_result="$1"
4461 fi
4462 }
4463 # end func_convert_file_check
4464@@ -2888,11 +1606,10 @@ func_convert_file_check ()
4465 # func_to_host_file_result to a simplistic fallback value (see below).
4466 func_convert_path_check ()
4467 {
4468- $debug_cmd
4469-
4470+ $opt_debug
4471 if test -z "$4" && test -n "$3"; then
4472 func_error "Could not determine the host path corresponding to"
4473- func_error " '$3'"
4474+ func_error " \`$3'"
4475 func_error "Continuing, but uninstalled executables may not work."
4476 # Fallback. This is a deliberately simplistic "conversion" and
4477 # should not be "improved". See libtool.info.
4478@@ -2901,7 +1618,7 @@ func_convert_path_check ()
4479 func_to_host_path_result=`echo "$3" |
4480 $SED -e "$lt_replace_pathsep_chars"`
4481 else
4482- func_to_host_path_result=$3
4483+ func_to_host_path_result="$3"
4484 fi
4485 fi
4486 }
4487@@ -2913,10 +1630,9 @@ func_convert_path_check ()
4488 # and appending REPL if ORIG matches BACKPAT.
4489 func_convert_path_front_back_pathsep ()
4490 {
4491- $debug_cmd
4492-
4493+ $opt_debug
4494 case $4 in
4495- $1 ) func_to_host_path_result=$3$func_to_host_path_result
4496+ $1 ) func_to_host_path_result="$3$func_to_host_path_result"
4497 ;;
4498 esac
4499 case $4 in
4500@@ -2930,7 +1646,7 @@ func_convert_path_front_back_pathsep ()
4501 ##################################################
4502 # $build to $host FILE NAME CONVERSION FUNCTIONS #
4503 ##################################################
4504-# invoked via '$to_host_file_cmd ARG'
4505+# invoked via `$to_host_file_cmd ARG'
4506 #
4507 # In each case, ARG is the path to be converted from $build to $host format.
4508 # Result will be available in $func_to_host_file_result.
4509@@ -2941,8 +1657,7 @@ func_convert_path_front_back_pathsep ()
4510 # in func_to_host_file_result.
4511 func_to_host_file ()
4512 {
4513- $debug_cmd
4514-
4515+ $opt_debug
4516 $to_host_file_cmd "$1"
4517 }
4518 # end func_to_host_file
4519@@ -2954,8 +1669,7 @@ func_to_host_file ()
4520 # in (the comma separated) LAZY, no conversion takes place.
4521 func_to_tool_file ()
4522 {
4523- $debug_cmd
4524-
4525+ $opt_debug
4526 case ,$2, in
4527 *,"$to_tool_file_cmd",*)
4528 func_to_tool_file_result=$1
4529@@ -2973,7 +1687,7 @@ func_to_tool_file ()
4530 # Copy ARG to func_to_host_file_result.
4531 func_convert_file_noop ()
4532 {
4533- func_to_host_file_result=$1
4534+ func_to_host_file_result="$1"
4535 }
4536 # end func_convert_file_noop
4537
4538@@ -2984,12 +1698,11 @@ func_convert_file_noop ()
4539 # func_to_host_file_result.
4540 func_convert_file_msys_to_w32 ()
4541 {
4542- $debug_cmd
4543-
4544- func_to_host_file_result=$1
4545+ $opt_debug
4546+ func_to_host_file_result="$1"
4547 if test -n "$1"; then
4548 func_convert_core_msys_to_w32 "$1"
4549- func_to_host_file_result=$func_convert_core_msys_to_w32_result
4550+ func_to_host_file_result="$func_convert_core_msys_to_w32_result"
4551 fi
4552 func_convert_file_check "$1" "$func_to_host_file_result"
4553 }
4554@@ -3001,9 +1714,8 @@ func_convert_file_msys_to_w32 ()
4555 # func_to_host_file_result.
4556 func_convert_file_cygwin_to_w32 ()
4557 {
4558- $debug_cmd
4559-
4560- func_to_host_file_result=$1
4561+ $opt_debug
4562+ func_to_host_file_result="$1"
4563 if test -n "$1"; then
4564 # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
4565 # LT_CYGPATH in this case.
4566@@ -3019,12 +1731,11 @@ func_convert_file_cygwin_to_w32 ()
4567 # and a working winepath. Returns result in func_to_host_file_result.
4568 func_convert_file_nix_to_w32 ()
4569 {
4570- $debug_cmd
4571-
4572- func_to_host_file_result=$1
4573+ $opt_debug
4574+ func_to_host_file_result="$1"
4575 if test -n "$1"; then
4576 func_convert_core_file_wine_to_w32 "$1"
4577- func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
4578+ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
4579 fi
4580 func_convert_file_check "$1" "$func_to_host_file_result"
4581 }
4582@@ -3036,13 +1747,12 @@ func_convert_file_nix_to_w32 ()
4583 # Returns result in func_to_host_file_result.
4584 func_convert_file_msys_to_cygwin ()
4585 {
4586- $debug_cmd
4587-
4588- func_to_host_file_result=$1
4589+ $opt_debug
4590+ func_to_host_file_result="$1"
4591 if test -n "$1"; then
4592 func_convert_core_msys_to_w32 "$1"
4593 func_cygpath -u "$func_convert_core_msys_to_w32_result"
4594- func_to_host_file_result=$func_cygpath_result
4595+ func_to_host_file_result="$func_cygpath_result"
4596 fi
4597 func_convert_file_check "$1" "$func_to_host_file_result"
4598 }
4599@@ -3055,14 +1765,13 @@ func_convert_file_msys_to_cygwin ()
4600 # in func_to_host_file_result.
4601 func_convert_file_nix_to_cygwin ()
4602 {
4603- $debug_cmd
4604-
4605- func_to_host_file_result=$1
4606+ $opt_debug
4607+ func_to_host_file_result="$1"
4608 if test -n "$1"; then
4609 # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
4610 func_convert_core_file_wine_to_w32 "$1"
4611 func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
4612- func_to_host_file_result=$func_cygpath_result
4613+ func_to_host_file_result="$func_cygpath_result"
4614 fi
4615 func_convert_file_check "$1" "$func_to_host_file_result"
4616 }
4617@@ -3072,7 +1781,7 @@ func_convert_file_nix_to_cygwin ()
4618 #############################################
4619 # $build to $host PATH CONVERSION FUNCTIONS #
4620 #############################################
4621-# invoked via '$to_host_path_cmd ARG'
4622+# invoked via `$to_host_path_cmd ARG'
4623 #
4624 # In each case, ARG is the path to be converted from $build to $host format.
4625 # The result will be available in $func_to_host_path_result.
4626@@ -3096,11 +1805,10 @@ func_convert_file_nix_to_cygwin ()
4627 to_host_path_cmd=
4628 func_init_to_host_path_cmd ()
4629 {
4630- $debug_cmd
4631-
4632+ $opt_debug
4633 if test -z "$to_host_path_cmd"; then
4634 func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
4635- to_host_path_cmd=func_convert_path_$func_stripname_result
4636+ to_host_path_cmd="func_convert_path_${func_stripname_result}"
4637 fi
4638 }
4639
4640@@ -3110,8 +1818,7 @@ func_init_to_host_path_cmd ()
4641 # in func_to_host_path_result.
4642 func_to_host_path ()
4643 {
4644- $debug_cmd
4645-
4646+ $opt_debug
4647 func_init_to_host_path_cmd
4648 $to_host_path_cmd "$1"
4649 }
4650@@ -3122,7 +1829,7 @@ func_to_host_path ()
4651 # Copy ARG to func_to_host_path_result.
4652 func_convert_path_noop ()
4653 {
4654- func_to_host_path_result=$1
4655+ func_to_host_path_result="$1"
4656 }
4657 # end func_convert_path_noop
4658
4659@@ -3133,9 +1840,8 @@ func_convert_path_noop ()
4660 # func_to_host_path_result.
4661 func_convert_path_msys_to_w32 ()
4662 {
4663- $debug_cmd
4664-
4665- func_to_host_path_result=$1
4666+ $opt_debug
4667+ func_to_host_path_result="$1"
4668 if test -n "$1"; then
4669 # Remove leading and trailing path separator characters from ARG. MSYS
4670 # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
4671@@ -3143,7 +1849,7 @@ func_convert_path_msys_to_w32 ()
4672 func_stripname : : "$1"
4673 func_to_host_path_tmp1=$func_stripname_result
4674 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
4675- func_to_host_path_result=$func_convert_core_msys_to_w32_result
4676+ func_to_host_path_result="$func_convert_core_msys_to_w32_result"
4677 func_convert_path_check : ";" \
4678 "$func_to_host_path_tmp1" "$func_to_host_path_result"
4679 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
4680@@ -3157,9 +1863,8 @@ func_convert_path_msys_to_w32 ()
4681 # func_to_host_file_result.
4682 func_convert_path_cygwin_to_w32 ()
4683 {
4684- $debug_cmd
4685-
4686- func_to_host_path_result=$1
4687+ $opt_debug
4688+ func_to_host_path_result="$1"
4689 if test -n "$1"; then
4690 # See func_convert_path_msys_to_w32:
4691 func_stripname : : "$1"
4692@@ -3178,15 +1883,14 @@ func_convert_path_cygwin_to_w32 ()
4693 # a working winepath. Returns result in func_to_host_file_result.
4694 func_convert_path_nix_to_w32 ()
4695 {
4696- $debug_cmd
4697-
4698- func_to_host_path_result=$1
4699+ $opt_debug
4700+ func_to_host_path_result="$1"
4701 if test -n "$1"; then
4702 # See func_convert_path_msys_to_w32:
4703 func_stripname : : "$1"
4704 func_to_host_path_tmp1=$func_stripname_result
4705 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
4706- func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
4707+ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
4708 func_convert_path_check : ";" \
4709 "$func_to_host_path_tmp1" "$func_to_host_path_result"
4710 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
4711@@ -3200,16 +1904,15 @@ func_convert_path_nix_to_w32 ()
4712 # Returns result in func_to_host_file_result.
4713 func_convert_path_msys_to_cygwin ()
4714 {
4715- $debug_cmd
4716-
4717- func_to_host_path_result=$1
4718+ $opt_debug
4719+ func_to_host_path_result="$1"
4720 if test -n "$1"; then
4721 # See func_convert_path_msys_to_w32:
4722 func_stripname : : "$1"
4723 func_to_host_path_tmp1=$func_stripname_result
4724 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
4725 func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
4726- func_to_host_path_result=$func_cygpath_result
4727+ func_to_host_path_result="$func_cygpath_result"
4728 func_convert_path_check : : \
4729 "$func_to_host_path_tmp1" "$func_to_host_path_result"
4730 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
4731@@ -3224,9 +1927,8 @@ func_convert_path_msys_to_cygwin ()
4732 # func_to_host_file_result.
4733 func_convert_path_nix_to_cygwin ()
4734 {
4735- $debug_cmd
4736-
4737- func_to_host_path_result=$1
4738+ $opt_debug
4739+ func_to_host_path_result="$1"
4740 if test -n "$1"; then
4741 # Remove leading and trailing path separator characters from
4742 # ARG. msys behavior is inconsistent here, cygpath turns them
4743@@ -3235,7 +1937,7 @@ func_convert_path_nix_to_cygwin ()
4744 func_to_host_path_tmp1=$func_stripname_result
4745 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
4746 func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
4747- func_to_host_path_result=$func_cygpath_result
4748+ func_to_host_path_result="$func_cygpath_result"
4749 func_convert_path_check : : \
4750 "$func_to_host_path_tmp1" "$func_to_host_path_result"
4751 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
4752@@ -3244,31 +1946,13 @@ func_convert_path_nix_to_cygwin ()
4753 # end func_convert_path_nix_to_cygwin
4754
4755
4756-# func_dll_def_p FILE
4757-# True iff FILE is a Windows DLL '.def' file.
4758-# Keep in sync with _LT_DLL_DEF_P in libtool.m4
4759-func_dll_def_p ()
4760-{
4761- $debug_cmd
4762-
4763- func_dll_def_p_tmp=`$SED -n \
4764- -e 's/^[ ]*//' \
4765- -e '/^\(;.*\)*$/d' \
4766- -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \
4767- -e q \
4768- "$1"`
4769- test DEF = "$func_dll_def_p_tmp"
4770-}
4771-
4772-
4773 # func_mode_compile arg...
4774 func_mode_compile ()
4775 {
4776- $debug_cmd
4777-
4778+ $opt_debug
4779 # Get the compilation command and the source file.
4780 base_compile=
4781- srcfile=$nonopt # always keep a non-empty value in "srcfile"
4782+ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
4783 suppress_opt=yes
4784 suppress_output=
4785 arg_mode=normal
4786@@ -3281,12 +1965,12 @@ func_mode_compile ()
4787 case $arg_mode in
4788 arg )
4789 # do not "continue". Instead, add this to base_compile
4790- lastarg=$arg
4791+ lastarg="$arg"
4792 arg_mode=normal
4793 ;;
4794
4795 target )
4796- libobj=$arg
4797+ libobj="$arg"
4798 arg_mode=normal
4799 continue
4800 ;;
4801@@ -3296,7 +1980,7 @@ func_mode_compile ()
4802 case $arg in
4803 -o)
4804 test -n "$libobj" && \
4805- func_fatal_error "you cannot specify '-o' more than once"
4806+ func_fatal_error "you cannot specify \`-o' more than once"
4807 arg_mode=target
4808 continue
4809 ;;
4810@@ -3325,12 +2009,12 @@ func_mode_compile ()
4811 func_stripname '-Wc,' '' "$arg"
4812 args=$func_stripname_result
4813 lastarg=
4814- save_ifs=$IFS; IFS=,
4815+ save_ifs="$IFS"; IFS=','
4816 for arg in $args; do
4817- IFS=$save_ifs
4818+ IFS="$save_ifs"
4819 func_append_quoted lastarg "$arg"
4820 done
4821- IFS=$save_ifs
4822+ IFS="$save_ifs"
4823 func_stripname ' ' '' "$lastarg"
4824 lastarg=$func_stripname_result
4825
4826@@ -3343,8 +2027,8 @@ func_mode_compile ()
4827 # Accept the current argument as the source file.
4828 # The previous "srcfile" becomes the current argument.
4829 #
4830- lastarg=$srcfile
4831- srcfile=$arg
4832+ lastarg="$srcfile"
4833+ srcfile="$arg"
4834 ;;
4835 esac # case $arg
4836 ;;
4837@@ -3359,13 +2043,13 @@ func_mode_compile ()
4838 func_fatal_error "you must specify an argument for -Xcompile"
4839 ;;
4840 target)
4841- func_fatal_error "you must specify a target with '-o'"
4842+ func_fatal_error "you must specify a target with \`-o'"
4843 ;;
4844 *)
4845 # Get the name of the library object.
4846 test -z "$libobj" && {
4847 func_basename "$srcfile"
4848- libobj=$func_basename_result
4849+ libobj="$func_basename_result"
4850 }
4851 ;;
4852 esac
4853@@ -3385,7 +2069,7 @@ func_mode_compile ()
4854 case $libobj in
4855 *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
4856 *)
4857- func_fatal_error "cannot determine name of library object from '$libobj'"
4858+ func_fatal_error "cannot determine name of library object from \`$libobj'"
4859 ;;
4860 esac
4861
4862@@ -3394,8 +2078,8 @@ func_mode_compile ()
4863 for arg in $later; do
4864 case $arg in
4865 -shared)
4866- test yes = "$build_libtool_libs" \
4867- || func_fatal_configuration "cannot build a shared library"
4868+ test "$build_libtool_libs" != yes && \
4869+ func_fatal_configuration "can not build a shared library"
4870 build_old_libs=no
4871 continue
4872 ;;
4873@@ -3421,17 +2105,17 @@ func_mode_compile ()
4874 func_quote_for_eval "$libobj"
4875 test "X$libobj" != "X$func_quote_for_eval_result" \
4876 && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
4877- && func_warning "libobj name '$libobj' may not contain shell special characters."
4878+ && func_warning "libobj name \`$libobj' may not contain shell special characters."
4879 func_dirname_and_basename "$obj" "/" ""
4880- objname=$func_basename_result
4881- xdir=$func_dirname_result
4882- lobj=$xdir$objdir/$objname
4883+ objname="$func_basename_result"
4884+ xdir="$func_dirname_result"
4885+ lobj=${xdir}$objdir/$objname
4886
4887 test -z "$base_compile" && \
4888 func_fatal_help "you must specify a compilation command"
4889
4890 # Delete any leftover library objects.
4891- if test yes = "$build_old_libs"; then
4892+ if test "$build_old_libs" = yes; then
4893 removelist="$obj $lobj $libobj ${libobj}T"
4894 else
4895 removelist="$lobj $libobj ${libobj}T"
4896@@ -3443,16 +2127,16 @@ func_mode_compile ()
4897 pic_mode=default
4898 ;;
4899 esac
4900- if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
4901+ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
4902 # non-PIC code in shared libraries is not supported
4903 pic_mode=default
4904 fi
4905
4906 # Calculate the filename of the output object if compiler does
4907 # not support -o with -c
4908- if test no = "$compiler_c_o"; then
4909- output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
4910- lockfile=$output_obj.lock
4911+ if test "$compiler_c_o" = no; then
4912+ output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
4913+ lockfile="$output_obj.lock"
4914 else
4915 output_obj=
4916 need_locks=no
4917@@ -3461,12 +2145,12 @@ func_mode_compile ()
4918
4919 # Lock this critical section if it is needed
4920 # We use this script file to make the link, it avoids creating a new file
4921- if test yes = "$need_locks"; then
4922+ if test "$need_locks" = yes; then
4923 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
4924 func_echo "Waiting for $lockfile to be removed"
4925 sleep 2
4926 done
4927- elif test warn = "$need_locks"; then
4928+ elif test "$need_locks" = warn; then
4929 if test -f "$lockfile"; then
4930 $ECHO "\
4931 *** ERROR, $lockfile exists and contains:
4932@@ -3474,7 +2158,7 @@ func_mode_compile ()
4933
4934 This indicates that another process is trying to use the same
4935 temporary object file, and libtool could not work around it because
4936-your compiler does not support '-c' and '-o' together. If you
4937+your compiler does not support \`-c' and \`-o' together. If you
4938 repeat this compilation, it may succeed, by chance, but you had better
4939 avoid parallel builds (make -j) in this platform, or get a better
4940 compiler."
4941@@ -3496,11 +2180,11 @@ compiler."
4942 qsrcfile=$func_quote_for_eval_result
4943
4944 # Only build a PIC object if we are building libtool libraries.
4945- if test yes = "$build_libtool_libs"; then
4946+ if test "$build_libtool_libs" = yes; then
4947 # Without this assignment, base_compile gets emptied.
4948 fbsd_hideous_sh_bug=$base_compile
4949
4950- if test no != "$pic_mode"; then
4951+ if test "$pic_mode" != no; then
4952 command="$base_compile $qsrcfile $pic_flag"
4953 else
4954 # Don't build PIC code
4955@@ -3517,7 +2201,7 @@ compiler."
4956 func_show_eval_locale "$command" \
4957 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
4958
4959- if test warn = "$need_locks" &&
4960+ if test "$need_locks" = warn &&
4961 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
4962 $ECHO "\
4963 *** ERROR, $lockfile contains:
4964@@ -3528,7 +2212,7 @@ $srcfile
4965
4966 This indicates that another process is trying to use the same
4967 temporary object file, and libtool could not work around it because
4968-your compiler does not support '-c' and '-o' together. If you
4969+your compiler does not support \`-c' and \`-o' together. If you
4970 repeat this compilation, it may succeed, by chance, but you had better
4971 avoid parallel builds (make -j) in this platform, or get a better
4972 compiler."
4973@@ -3544,20 +2228,20 @@ compiler."
4974 fi
4975
4976 # Allow error messages only from the first compilation.
4977- if test yes = "$suppress_opt"; then
4978+ if test "$suppress_opt" = yes; then
4979 suppress_output=' >/dev/null 2>&1'
4980 fi
4981 fi
4982
4983 # Only build a position-dependent object if we build old libraries.
4984- if test yes = "$build_old_libs"; then
4985- if test yes != "$pic_mode"; then
4986+ if test "$build_old_libs" = yes; then
4987+ if test "$pic_mode" != yes; then
4988 # Don't build PIC code
4989 command="$base_compile $qsrcfile$pie_flag"
4990 else
4991 command="$base_compile $qsrcfile $pic_flag"
4992 fi
4993- if test yes = "$compiler_c_o"; then
4994+ if test "$compiler_c_o" = yes; then
4995 func_append command " -o $obj"
4996 fi
4997
4998@@ -3566,7 +2250,7 @@ compiler."
4999 func_show_eval_locale "$command" \
5000 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches