diff --git httpd/Makefile.in httpd/Makefile.in
index e822b045f..5fad74bb2 100644
--- httpd/Makefile.in
+++ httpd/Makefile.in
@@ -21,8 +21,11 @@ INSTALL_TARGETS = install-conf install-htdocs install-error install-icons \
DISTCLEAN_TARGETS = include/ap_config_auto.h include/ap_config_layout.h \
include/apache_probes.h \
modules.c config.cache config.log config.status build/config_vars.mk \
- build/rules.mk docs/conf/httpd.conf docs/conf/extra/*.conf shlibtool \
- build/pkg/pkginfo build/config_vars.sh
+ build/rules.mk docs/conf/httpd.conf docs/conf/extra-available/*.conf \
+ docs/conf/ports-available/*.conf docs/conf/sites-available/*.conf \
+ docs/conf/mods-available/*.conf docs/conf/mods-available/*.load \
+ docs/conf/include/*.conf \
+ shlibtool build/pkg/pkginfo build/config_vars.sh
EXTRACLEAN_TARGETS = configure include/ap_config_auto.h.in generated_lists \
httpd.spec
@@ -33,93 +36,86 @@ install-conf:
@echo Installing configuration files
@$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(sysconfdir)/extra
@$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/extra
- @cd $(top_srcdir)/docs/conf; \
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/include
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/extra-available
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/extra-enabled
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/extra-start.d
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/ports-available
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/ports-enabled
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/ports-start.d
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/sites-available
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/sites-enabled
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/sites-start.d
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/mods-available
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/mods-enabled
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/mods-start.d
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/include
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/extra-available
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/extra-enabled
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/extra-start.d
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/ports-available
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/ports-enabled
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/ports-start.d
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/sites-available
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/sites-enabled
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/sites-start.d
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/mods-available
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/mods-enabled
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/mods-start.d
+ ( cd $(top_srcdir)/docs/conf; \
for i in mime.types magic; do \
if test ! -f $(DESTDIR)$(sysconfdir)/$$i; then \
$(INSTALL_DATA) $$i $(DESTDIR)$(sysconfdir); \
fi; \
+ done;)
+ cd docs/conf; \
+ for j in $(DSO_MODULES) "^EOL^"; do \
+ if test $$j != "^EOL^"; then \
+ f_name_load=$$(printf "%s.load" $${j}); \
+ if test -f mods-available/$$f_name_load; then \
+ cat mods-available/$$f_name_load; \
+ else \
+ echo "LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \
+ fi | \
+ sed -e 's#@@ServerRoot@@#$(prefix)#g' \
+ -e 's#@@Port@@#$(PORT)#g' \
+ -e 's#@@SSLPort@@#$(SSLPORT)#g' \
+ -e '/@@LoadModule@@/d' \
+ > $(DESTDIR)$(sysconfdir)/original/mods-available/$$f_name_load; \
+ chmod 0644 $(DESTDIR)$(sysconfdir)/original/mods-available/$$f_name_load; \
+ f_name_conf=$$(printf "%s.conf" $${j}); \
+ if test -f mods-available/$$f_name_conf; then \
+ cat mods-available/$$f_name_conf | \
+ sed -e 's#@@ServerRoot@@#$(prefix)#g' \
+ -e 's#@@Port@@#$(PORT)#g' \
+ -e 's#@@SSLPort@@#$(SSLPORT)#g' \
+ -e '/@@LoadModule@@/d' \
+ > $(DESTDIR)$(sysconfdir)/original/mods-available/$$f_name_conf; \
+ chmod 0644 $(DESTDIR)$(sysconfdir)/original/mods-available/$$f_name_conf; \
+ fi; \
+ fi; \
+ done; \
+ for i in include/*.conf extra-available/*.conf ports-available/*.conf sites-available/*.conf; do \
+ cat $$i | \
+ sed -e 's#@@ServerRoot@@#$(prefix)#g' \
+ -e 's#@@Port@@#$(PORT)#g' \
+ -e 's#@@SSLPort@@#$(SSLPORT)#g' \
+ -e '/@@LoadModule@@/d' \
+ > $(DESTDIR)$(sysconfdir)/original/$$i; \
+ chmod 0644 $(DESTDIR)$(sysconfdir)/original/$$i; \
+ done; \
+ cat httpd.conf | \
+ sed -e 's#@@ServerRoot@@#$(prefix)#g' \
+ -e 's#@@Port@@#$(PORT)#g' \
+ -e 's#@@SSLPort@@#$(SSLPORT)#g' \
+ -e '/@@LoadModule@@/d' \
+ > $(DESTDIR)$(sysconfdir)/original/$(PROGRAM_NAME).conf; \
+ chmod 0644 $(DESTDIR)$(sysconfdir)/original/$(PROGRAM_NAME).conf; \
+ for i in $$(cd $(DESTDIR)$(sysconfdir)/original/ && \
+ ls $(PROGRAM_NAME).conf include/*.conf mods-available/*.conf mods-available/*.load extra-available/*.conf ports-available/*.conf sites-available/*.conf); do \
+ $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/original/$$i $(DESTDIR)$(sysconfdir)/$$i; \
done; \
- for j in $(top_srcdir)/docs/conf $(top_builddir)/docs/conf ; do \
- cd $$j ; \
- for i in httpd.conf extra/*.conf; do \
- if [ -f $$i ] ; then \
- ( \
- n_lm=`awk 'BEGIN {n=0} /@@LoadModule@@/ {n+=1} END {print n}' < $$i`; \
- if test $$n_lm -eq 0 -o "x$(MPM_MODULES)$(DSO_MODULES)" = "x"; then \
- sed -e 's#@@ServerRoot@@#$(prefix)#g' \
- -e 's#@@Port@@#$(PORT)#g' \
- -e 's#@@SSLPort@@#$(SSLPORT)#g' \
- -e '/@@LoadModule@@/d' \
- < $$i; \
- else \
- sed -n -e '/@@LoadModule@@/q' \
- -e 's#@@ServerRoot@@#$(prefix)#g' \
- -e 's#@@Port@@#$(PORT)#g' \
- -e 's#@@SSLPort@@#$(SSLPORT)#g' \
- -e 'p' \
- < $$i; \
- if echo " $(DSO_MODULES) "|$(EGREP) " cgi " > /dev/null ; then \
- have_cgi="1"; \
- else \
- have_cgi="0"; \
- fi; \
- if echo " $(DSO_MODULES) "|$(EGREP) " cgid " > /dev/null ; then \
- have_cgid="1"; \
- else \
- have_cgid="0"; \
- fi; \
- for j in $(MPM_MODULES) "^EOL^"; do \
- if test $$j != "^EOL^"; then \
- if echo ",$(ENABLED_MPM_MODULE),"|$(EGREP) ",$$j," > /dev/null ; then \
- loading_disabled=""; \
- else \
- loading_disabled="#"; \
- fi; \
- echo "$${loading_disabled}LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \
- fi; \
- done; \
- for j in $(DSO_MODULES) "^EOL^"; do \
- if test $$j != "^EOL^"; then \
- if echo ",$(ENABLED_DSO_MODULES),"|$(EGREP) ",$$j," > /dev/null ; then \
- loading_disabled=""; \
- else \
- loading_disabled="#"; \
- if test "$(LOAD_ALL_MODULES)" = "yes"; then \
- loading_disabled=""; \
- fi; \
- fi; \
- if test $$j = "cgid" -a "$$have_cgi" = "1"; then \
- echo ""; \
- echo " $${loading_disabled}LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \
- echo ""; \
- elif test $$j = "cgi" -a "$$have_cgid" = "1"; then \
- echo ""; \
- echo " $${loading_disabled}LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \
- echo ""; \
- else \
- echo "$${loading_disabled}LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \
- fi; \
- fi; \
- done; \
- sed -e '1,/@@LoadModule@@/d' \
- -e '/@@LoadModule@@/d' \
- -e 's#@@ServerRoot@@#$(prefix)#g' \
- -e 's#@@Port@@#$(PORT)#g' \
- -e 's#@@SSLPort@@#$(SSLPORT)#g' \
- < $$i; \
- fi \
- ) > $(DESTDIR)$(sysconfdir)/original/$$i; \
- chmod 0644 $(DESTDIR)$(sysconfdir)/original/$$i; \
- file=$$i; \
- if [ "$$i" = "httpd.conf" ]; then \
- file=`echo $$i|sed s/.*.conf/$(PROGRAM_NAME).conf/`; \
- fi; \
- if test ! -f $(DESTDIR)$(sysconfdir)/$$file; then \
- $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/original/$$i $(DESTDIR)$(sysconfdir)/$$file; \
- fi; \
- fi; \
- done ; \
- done ; \
if test -f "$(builddir)/envvars-std"; then \
cp -p envvars-std $(DESTDIR)$(sbindir); \
if test ! -f $(DESTDIR)$(sbindir)/envvars; then \
diff --git httpd/acinclude.m4 httpd/acinclude.m4
index 51cf130c9..43653f9b1 100644
--- httpd/acinclude.m4
+++ httpd/acinclude.m4
@@ -121,6 +121,12 @@ AC_DEFUN([APACHE_GEN_MAKEFILES],[
$SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $BSD_MAKEFILE $APACHE_FAST_OUTPUT_FILES
])
+dnl APACHE_OUTPUT_CONFIGFILES
+dnl ## adds config files to the list of files generated by AC_OUTPUT
+AC_DEFUN([APACHE_OUTPUT_CONFIGFILES],[
+ APACHE_OUTPUT_FILES="$APACHE_OUTPUT_FILES `find $srcdir/docs/conf -name '*.in'|sed -e "s@$srcdir/\([[^[:space:]]]\+\)\.in@\1@"`"
+])
+
dnl
dnl APACHE_TYPE_RLIM_T
dnl
diff --git httpd/configure.in httpd/configure.in
index 62ed7b0e0..ec5080bda 100644
--- httpd/configure.in
+++ httpd/configure.in
@@ -937,7 +937,8 @@ AC_SUBST(ap_make_delimiter)
dnl Ensure that docs/conf is created.
test -d docs/conf||$mkdir_p docs/conf
-AC_CONFIG_FILES(docs/conf/httpd.conf docs/conf/extra/httpd-autoindex.conf docs/conf/extra/httpd-dav.conf docs/conf/extra/httpd-default.conf docs/conf/extra/httpd-info.conf docs/conf/extra/httpd-languages.conf docs/conf/extra/httpd-manual.conf docs/conf/extra/httpd-mpm.conf docs/conf/extra/httpd-multilang-errordoc.conf docs/conf/extra/httpd-ssl.conf docs/conf/extra/httpd-userdir.conf docs/conf/extra/httpd-vhosts.conf docs/conf/extra/proxy-html.conf include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo build/config_vars.sh)
+APACHE_OUTPUT_CONFIGFILES
+AC_CONFIG_FILES(support/a2chkconfig support/a2chkconfig_list support/a2disextra support/a2dismod support/a2disport support/a2dissite support/a2enextra support/a2enmod support/a2enport support/a2ensite support/check_forensic support/modhandler.py include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo build/config_vars.sh $ac_config_files $APACHE_OUTPUT_FILES)
AC_CONFIG_COMMANDS([default], [true], [APACHE_GEN_MAKEFILES])
AC_OUTPUT
AC_MSG_NOTICE([summary of build options:
diff --git httpd/docs/cgi-examples/printenv httpd/docs/cgi-examples/printenv
index 5b5035e26..bceb4e558 100644
--- httpd/docs/cgi-examples/printenv
+++ httpd/docs/cgi-examples/printenv
@@ -1,4 +1,4 @@
-#
+#!/usr/bin/perl
# To permit this cgi, replace # on the first line above with the
# appropriate #!/path/to/perl shebang, and on Unix / Linux also
diff --git httpd/docs/conf/extra-available/httpd-autoindex.conf.in httpd/docs/conf/extra-available/httpd-autoindex.conf.in
new file mode 100644
index 000000000..7dec5f109
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-autoindex.conf.in
@@ -0,0 +1,90 @@
+#
+# Summary: Directives controlling the display of server-generated directory listings.
+# Provides: Extra
+#
+
+#
+# Directives controlling the display of server-generated directory listings.
+#
+# Required modules: mod_autoindex, mod_alias
+#
+# To see the listing of a directory, the Options directive for the
+# directory must include "Indexes", and the directory must not contain
+# a file matching those listed in the DirectoryIndex directive.
+#
+
+
+ #
+ # IndexOptions: Controls the appearance of server-generated directory
+ # listings.
+ #
+ IndexOptions FancyIndexing HTMLTable VersionSort
+
+
+ #
+ # AddIcon* directives tell the server which icon to show for different
+ # files or filename extensions. These are only displayed for
+ # FancyIndexed directories.
+ #
+ AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
+
+ AddIconByType (TXT,/icons/text.gif) text/*
+ AddIconByType (IMG,/icons/image2.gif) image/*
+ AddIconByType (SND,/icons/sound2.gif) audio/*
+ AddIconByType (VID,/icons/movie.gif) video/*
+
+ AddIcon /icons/binary.gif .bin .exe
+ AddIcon /icons/binhex.gif .hqx
+ AddIcon /icons/tar.gif .tar
+ AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
+ AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
+ AddIcon /icons/a.gif .ps .ai .eps
+ AddIcon /icons/layout.gif .html .shtml .htm .pdf
+ AddIcon /icons/text.gif .txt
+ AddIcon /icons/c.gif .c
+ AddIcon /icons/p.gif .pl .py
+ AddIcon /icons/f.gif .for
+ AddIcon /icons/dvi.gif .dvi
+ AddIcon /icons/uuencoded.gif .uu
+ AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
+ AddIcon /icons/tex.gif .tex
+ AddIcon /icons/bomb.gif core
+
+ AddIcon /icons/back.gif ..
+ AddIcon /icons/hand.right.gif README
+ AddIcon /icons/folder.gif ^^DIRECTORY^^
+ AddIcon /icons/blank.gif ^^BLANKICON^^
+
+ #
+ # DefaultIcon is which icon to show for files which do not have an icon
+ # explicitly set.
+ #
+ DefaultIcon /icons/unknown.gif
+
+
+ #
+ # AddDescription allows you to place a short description after a file in
+ # server-generated indexes. These are only displayed for FancyIndexed
+ # directories.
+ # Format: AddDescription "description" filename
+ #
+ #AddDescription "GZIP compressed document" .gz
+ #AddDescription "tar archive" .tar
+ #AddDescription "GZIP compressed tar archive" .tgz
+
+ #
+ # ReadmeName is the name of the README file the server will look for by
+ # default, and append to directory listings.
+ #
+ # HeaderName is the name of a file which should be prepended to
+ # directory indexes.
+ ReadmeName README.html
+ HeaderName HEADER.html
+
+ #
+ # IndexIgnore is a set of filenames which directory indexing should ignore
+ # and not include in the listing. Shell-style wildcarding is permitted.
+ #
+ IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
+
+
diff --git httpd/docs/conf/extra-available/httpd-dav.conf.in httpd/docs/conf/extra-available/httpd-dav.conf.in
new file mode 100644
index 000000000..8f81ea22b
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-dav.conf.in
@@ -0,0 +1,47 @@
+#
+# Summary: Distributed authoring and versioning (WebDAV)
+# Provides: Extra
+#
+
+#
+# Distributed authoring and versioning (WebDAV)
+#
+# Required modules: mod_dav, mod_dav_fs, mod_setenvif, mod_alias
+# mod_auth_digest, mod_authn_file
+#
+
+# The following example gives DAV write access to a directory called
+# "uploads" under the ServerRoot directory.
+#
+# The User/Group specified in httpd.conf needs to have write permissions
+# on the directory where the DavLockDB is placed and on any directory where
+# "Dav On" is specified.
+
+
+ Alias /uploads "@@ServerRoot@@/uploads"
+
+
+
+
+ Dav On
+
+ Require all granted
+
+ AuthType Digest
+ AuthName DAV-upload
+
+
+ # You can use the htdigest program to create the password database:
+ # htdigest -c "@@ServerRoot@@/user.passwd" DAV-upload admin
+ AuthUserFile "@@ServerRoot@@/user.passwd"
+ AuthDigestProvider file
+
+
+ # Allow universal read-access, but writes are restricted
+ # to the admin user.
+
+ require user admin
+
+
+
+
diff --git httpd/docs/conf/extra-available/httpd-default.conf.in httpd/docs/conf/extra-available/httpd-default.conf.in
new file mode 100644
index 000000000..aab527d1a
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-default.conf.in
@@ -0,0 +1,80 @@
+#
+# Summary: This configuration file reflects default settings for Apache HTTP Server.
+# Provides: Extra
+#
+
+#
+# This configuration file reflects default settings for Apache HTTP Server.
+#
+# You may change these, but chances are that you may not need to.
+#
+
+#
+# Timeout: The number of seconds before receives and sends time out.
+#
+Timeout 300
+
+#
+# KeepAlive: Whether or not to allow persistent connections (more than
+# one request per connection). Set to "Off" to deactivate.
+#
+KeepAlive On
+
+#
+# MaxKeepAliveRequests: The maximum number of requests to allow
+# during a persistent connection. Set to 0 to allow an unlimited amount.
+# We recommend you leave this number high, for maximum performance.
+#
+MaxKeepAliveRequests 100
+
+#
+# KeepAliveTimeout: Number of seconds to wait for the next request from the
+# same client on the same connection.
+#
+KeepAliveTimeout 5
+
+#
+# UseCanonicalName: Determines how Apache constructs self-referencing
+# URLs and the SERVER_NAME and SERVER_PORT variables.
+# When set "Off", Apache will use the Hostname and Port supplied
+# by the client. When set "On", Apache will use the value of the
+# ServerName directive.
+#
+UseCanonicalName Off
+
+#
+# AccessFileName: The name of the file to look for in each directory
+# for additional configuration directives. See also the AllowOverride
+# directive.
+#
+AccessFileName .htaccess
+
+#
+# ServerTokens
+# This directive configures what you return as the Server HTTP response
+# Header. The default is 'Full' which sends information about the OS-Type
+# and compiled in modules.
+# Set to one of: Full | OS | Minor | Minimal | Major | Prod
+# where Full conveys the most information, and Prod the least.
+#
+ServerTokens Full
+
+#
+# Optionally add a line containing the server version and virtual host
+# name to server-generated pages (internal error documents, FTP directory
+# listings, mod_status and mod_info output etc., but not CGI generated
+# documents or custom error documents).
+# Set to "EMail" to also include a mailto: link to the ServerAdmin.
+# Set to one of: On | Off | EMail
+#
+ServerSignature On
+
+#
+# HostnameLookups: Log the names of clients or just their IP addresses
+# e.g., www.apache.org (on) or 204.62.129.132 (off).
+# The default is off because it'd be overall better for the net if people
+# had to knowingly turn this feature on, since enabling it means that
+# each client request will result in AT LEAST one lookup request to the
+# nameserver.
+#
+HostnameLookups Off
diff --git httpd/docs/conf/extra-available/httpd-icons.conf.in httpd/docs/conf/extra-available/httpd-icons.conf.in
new file mode 100644
index 000000000..36fcce852
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-icons.conf.in
@@ -0,0 +1,21 @@
+#
+# Summary: Icons for server-generated directory listings.
+# Provides: Extra
+#
+
+#
+# Required modules: mod_alias
+#
+
+
+ # We include the /icons/ alias for FancyIndexed directory listings. If
+ # you do not use FancyIndexing, you may comment this out.
+ #
+ Alias /icons/ "@exp_iconsdir@/"
+
+
+
+ Options Indexes MultiViews
+ AllowOverride None
+ Require all granted
+
diff --git httpd/docs/conf/extra-available/httpd-info.conf.in httpd/docs/conf/extra-available/httpd-info.conf.in
new file mode 100644
index 000000000..43c097d65
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-info.conf.in
@@ -0,0 +1,42 @@
+#
+# Summary: Get information about the requests being processed by the server and the configuration of the server.
+# Provides: Extra
+#
+
+#
+# Get information about the requests being processed by the server
+# and the configuration of the server.
+#
+# Required modules: mod_status (for the server-status handler),
+# mod_info (for the server-info handler)
+
+
+ #
+ # Allow server status reports generated by mod_status,
+ # with the URL of http://servername/server-status
+ # Change the ".example.com" to match your domain to enable.
+
+
+ SetHandler server-status
+ Require host .example.com
+
+
+ #
+ # ExtendedStatus controls whether Apache will generate "full" status
+ # information (ExtendedStatus On) or just basic information (ExtendedStatus
+ # Off) when the "server-status" handler is called. The default is Off.
+ #
+ #ExtendedStatus On
+
+
+
+ #
+ # Allow remote server configuration reports, with the URL of
+ # http://servername/server-info (requires that mod_info.c be loaded).
+ # Change the ".example.com" to match your domain to enable.
+ #
+
+ SetHandler server-info
+ Require host .example.com
+
+
diff --git httpd/docs/conf/extra-available/httpd-languages.conf.in httpd/docs/conf/extra-available/httpd-languages.conf.in
new file mode 100644
index 000000000..28b4a4142
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-languages.conf.in
@@ -0,0 +1,152 @@
+#
+# Summary: Settings for hosting different languages.
+# Provides: Extra
+#
+
+#
+# Settings for hosting different languages.
+#
+# Required modules: mod_mime, mod_negotiation
+
+
+ # DefaultLanguage and AddLanguage allows you to specify the language of
+ # a document. You can then use content negotiation to give a browser a
+ # file in a language the user can understand.
+ #
+ # Specify a default language. This means that all data
+ # going out without a specific language tag (see below) will
+ # be marked with this one. You probably do NOT want to set
+ # this unless you are sure it is correct for all cases.
+ #
+ # * It is generally better to not mark a page as
+ # * being a certain language than marking it with the wrong
+ # * language!
+ #
+ # DefaultLanguage nl
+ #
+ # Note 1: The suffix does not have to be the same as the language
+ # keyword --- those with documents in Polish (whose net-standard
+ # language code is pl) may wish to use "AddLanguage pl .po" to
+ # avoid the ambiguity with the common suffix for perl scripts.
+ #
+ # Note 2: The example entries below illustrate that in some cases
+ # the two character 'Language' abbreviation is not identical to
+ # the two character 'Country' code for its country,
+ # E.g. 'Danmark/dk' versus 'Danish/da'.
+ #
+ # Note 3: In the case of 'ltz' we violate the RFC by using a three char
+ # specifier. There is 'work in progress' to fix this and get
+ # the reference data for rfc1766 cleaned up.
+ #
+ # Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
+ # English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
+ # Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
+ # Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
+ # Norwegian (no) - Polish (pl) - Portugese (pt)
+ # Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
+ # Turkish (tr) - Simplified Chinese (zh-CN) - Spanish (es)
+ # Traditional Chinese (zh-TW)
+ #
+ AddLanguage ca .ca
+ AddLanguage cs .cz .cs
+ AddLanguage da .dk
+ AddLanguage de .de
+ AddLanguage el .el
+ AddLanguage en .en
+ AddLanguage eo .eo
+ AddLanguage es .es
+ AddLanguage et .et
+ AddLanguage fr .fr
+ AddLanguage he .he
+ AddLanguage hr .hr
+ AddLanguage it .it
+ AddLanguage ja .ja
+ AddLanguage ko .ko
+ AddLanguage ltz .ltz
+ AddLanguage nl .nl
+ AddLanguage nn .nn
+ AddLanguage no .no
+ AddLanguage pl .po
+ AddLanguage pt .pt
+ AddLanguage pt-BR .pt-br
+ AddLanguage ru .ru
+ AddLanguage sv .sv
+ AddLanguage tr .tr
+ AddLanguage zh-CN .zh-cn
+ AddLanguage zh-TW .zh-tw
+
+
+
+ # LanguagePriority allows you to give precedence to some languages
+ # in case of a tie during content negotiation.
+ #
+ # Just list the languages in decreasing order of preference. We have
+ # more or less alphabetized them here. You probably want to change this.
+ #
+ LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW
+
+ #
+ # ForceLanguagePriority allows you to serve a result page rather than
+ # MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
+ # [in case no accepted languages matched the available variants]
+ #
+ ForceLanguagePriority Prefer Fallback
+
+
+
+ #
+ # Commonly used filename extensions to character sets. You probably
+ # want to avoid clashes with the language extensions, unless you
+ # are good at carefully testing your setup after each change.
+ # See http://www.iana.org/assignments/character-sets for the
+ # official list of charset names and their respective RFCs.
+ #
+ AddCharset us-ascii .ascii .us-ascii
+ AddCharset ISO-8859-1 .iso8859-1 .latin1
+ AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
+ AddCharset ISO-8859-3 .iso8859-3 .latin3
+ AddCharset ISO-8859-4 .iso8859-4 .latin4
+ AddCharset ISO-8859-5 .iso8859-5 .cyr .iso-ru
+ AddCharset ISO-8859-6 .iso8859-6 .arb .arabic
+ AddCharset ISO-8859-7 .iso8859-7 .grk .greek
+ AddCharset ISO-8859-8 .iso8859-8 .heb .hebrew
+ AddCharset ISO-8859-9 .iso8859-9 .latin5 .trk
+ AddCharset ISO-8859-10 .iso8859-10 .latin6
+ AddCharset ISO-8859-13 .iso8859-13
+ AddCharset ISO-8859-14 .iso8859-14 .latin8
+ AddCharset ISO-8859-15 .iso8859-15 .latin9
+ AddCharset ISO-8859-16 .iso8859-16 .latin10
+ AddCharset ISO-2022-JP .iso2022-jp .jis
+ AddCharset ISO-2022-KR .iso2022-kr .kis
+ AddCharset ISO-2022-CN .iso2022-cn .cis
+ AddCharset Big5.Big5 .big5 .b5
+ AddCharset cn-Big5 .cn-big5
+ # For russian, more than one charset is used (depends on client, mostly):
+ AddCharset WINDOWS-1251 .cp-1251 .win-1251
+ AddCharset CP866 .cp866
+ AddCharset KOI8 .koi8
+ AddCharset KOI8-E .koi8-e
+ AddCharset KOI8-r .koi8-r .koi8-ru
+ AddCharset KOI8-U .koi8-u
+ AddCharset KOI8-ru .koi8-uk .ua
+ AddCharset ISO-10646-UCS-2 .ucs2
+ AddCharset ISO-10646-UCS-4 .ucs4
+ AddCharset UTF-7 .utf7
+ AddCharset UTF-8 .utf8
+ AddCharset UTF-16 .utf16
+ AddCharset UTF-16BE .utf16be
+ AddCharset UTF-16LE .utf16le
+ AddCharset UTF-32 .utf32
+ AddCharset UTF-32BE .utf32be
+ AddCharset UTF-32LE .utf32le
+ AddCharset euc-cn .euc-cn
+ AddCharset euc-gb .euc-gb
+ AddCharset euc-jp .euc-jp
+ AddCharset euc-kr .euc-kr
+ #Not sure how euc-tw got in - IANA doesn't list it???
+ AddCharset EUC-TW .euc-tw
+ AddCharset gb2312 .gb2312 .gb
+ AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2
+ AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4
+ AddCharset shift_jis .shift_jis .sjis
+
diff --git httpd/docs/conf/extra-available/httpd-manual.conf.in httpd/docs/conf/extra-available/httpd-manual.conf.in
new file mode 100644
index 000000000..4b9f18735
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-manual.conf.in
@@ -0,0 +1,43 @@
+#
+# Summary: Provide access to the documentation on your server
+# Provides: Extra
+#
+
+#
+# Provide access to the documentation on your server as
+# http://yourserver.example.com/manual/
+# The documentation is always available at
+# http://httpd.apache.org/docs/2.2/
+#
+# Required modules: mod_alias, mod_setenvif, mod_negotiation
+#
+
+
+ AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|pt-br|ru|tr))?(/.*)?$ "@exp_manualdir@$1"
+
+
+
+ Options Indexes
+ AllowOverride None
+ Require all granted
+
+
+ SetHandler type-map
+
+ # .tr is text/troff in mime.types!
+
+ ForceType text/html
+
+
+
+ SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|pt-br|ru|tr)/ prefer-language=$1
+
+
+ RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|pt-br|ru|tr)){2,}(/.*)?$ /manual/$1$2
+
+
+
+ LanguagePriority en de es fr ja ko pt-br ru tr
+ ForceLanguagePriority Prefer Fallback
+
+
diff --git httpd/docs/conf/extra-available/httpd-mime.conf.in httpd/docs/conf/extra-available/httpd-mime.conf.in
new file mode 100644
index 000000000..04c565e50
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-mime.conf.in
@@ -0,0 +1,48 @@
+#
+# Summary: Configure the list of mappings from filename extension to MIME-type.
+# Provides: Extra
+#
+
+
+ #
+ # AddType allows you to add to or override the MIME configuration
+ # file specified in TypesConfig for specific file types.
+ #
+ #AddType application/x-gzip .tgz
+ #
+ # AddEncoding allows you to have certain browsers uncompress
+ # information on the fly. Note: Not all browsers support this.
+ #
+ #AddEncoding x-compress .Z
+ #AddEncoding x-gzip .gz .tgz
+ #
+ # If the AddEncoding directives above are commented-out, then you
+ # probably should define those extensions to indicate media types:
+ #
+ AddType application/x-compress .Z
+ AddType application/x-gzip .gz .tgz
+
+ #
+ # AddHandler allows you to map certain file extensions to "handlers":
+ # actions unrelated to filetype. These can be either built into the server
+ # or added with the Action directive (see below)
+ #
+ # To use CGI scripts outside of ScriptAliased directories:
+ # (You will also need to add "ExecCGI" to the "Options" directive.)
+ #
+ #AddHandler cgi-script .cgi
+
+ # For type maps (negotiated resources):
+ #AddHandler type-map var
+
+ #
+ # Filters allow you to process content before it is sent to the client.
+ #
+ # To parse .shtml files for server-side includes (SSI):
+ # (You will also need to add "Includes" to the "Options" directive.)
+ #
+ AddType text/html .shtml
+
+ AddOutputFilter INCLUDES .shtml
+
+
diff --git httpd/docs/conf/extra-available/httpd-mpm.conf.in httpd/docs/conf/extra-available/httpd-mpm.conf.in
new file mode 100644
index 000000000..b3e83e3b1
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-mpm.conf.in
@@ -0,0 +1,110 @@
+#
+# Server-Pool Management (MPM specific)
+#
+
+#
+# PidFile: The file in which the server should record its process
+# identification number when it starts.
+#
+# Note that this is the default PidFile for most MPMs.
+#
+
+ PidFile "@rel_runtimedir@/httpd.pid"
+
+
+#
+# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
+#
+
+
+ #LockFile "@rel_logfiledir@/accept.lock"
+ Mutex sem
+
+
+
+#
+# Only one of the below sections will be relevant on your
+# installed httpd. Use "apachectl -l" to find out the
+# active mpm.
+#
+
+# prefork MPM
+# StartServers: number of server processes to start
+# MinSpareServers: minimum number of server processes which are kept spare
+# MaxSpareServers: maximum number of server processes which are kept spare
+# MaxClients: maximum number of server processes allowed to start
+# MaxRequestsPerChild: maximum number of requests a server process serves
+
+ StartServers 5
+ MinSpareServers 5
+ MaxSpareServers 10
+ MaxClients 150
+ MaxRequestsPerChild 0
+
+
+# worker MPM
+# StartServers: initial number of server processes to start
+# MaxClients: maximum number of simultaneous client connections
+# MinSpareThreads: minimum number of worker threads which are kept spare
+# MaxSpareThreads: maximum number of worker threads which are kept spare
+# ThreadsPerChild: constant number of worker threads in each server process
+# MaxRequestsPerChild: maximum number of requests a server process serves
+
+ StartServers 2
+ MaxClients 150
+ MinSpareThreads 25
+ MaxSpareThreads 75
+ ThreadsPerChild 25
+ MaxRequestsPerChild 0
+
+
+# BeOS MPM
+# StartThreads: how many threads do we initially spawn?
+# MaxClients: max number of threads we can have (1 thread == 1 client)
+# MaxRequestsPerThread: maximum number of requests each thread will process
+
+ StartThreads 10
+ MaxClients 50
+ MaxRequestsPerThread 10000
+
+
+# NetWare MPM
+# ThreadStackSize: Stack size allocated for each worker thread
+# StartThreads: Number of worker threads launched at server startup
+# MinSpareThreads: Minimum number of idle threads, to handle request spikes
+# MaxSpareThreads: Maximum number of idle threads
+# MaxThreads: Maximum number of worker threads alive at the same time
+# MaxRequestsPerChild: Maximum number of requests a thread serves. It is
+# recommended that the default value of 0 be set for this
+# directive on NetWare. This will allow the thread to
+# continue to service requests indefinitely.
+
+ ThreadStackSize 65536
+ StartThreads 250
+ MinSpareThreads 25
+ MaxSpareThreads 250
+ MaxThreads 1000
+ MaxRequestsPerChild 0
+ MaxMemFree 100
+
+
+# OS/2 MPM
+# StartServers: Number of server processes to maintain
+# MinSpareThreads: Minimum number of idle threads per process,
+# to handle request spikes
+# MaxSpareThreads: Maximum number of idle threads per process
+# MaxRequestsPerChild: Maximum number of connections per server process
+
+ StartServers 2
+ MinSpareThreads 5
+ MaxSpareThreads 10
+ MaxRequestsPerChild 0
+
+
+# WinNT MPM
+# ThreadsPerChild: constant number of worker threads in the server process
+# MaxRequestsPerChild: maximum number of requests a server process serves
+
+ ThreadsPerChild 150
+ MaxRequestsPerChild 0
+
diff --git httpd/docs/conf/extra-available/httpd-multilang-errordoc.conf.in httpd/docs/conf/extra-available/httpd-multilang-errordoc.conf.in
new file mode 100644
index 000000000..991c03ee1
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-multilang-errordoc.conf.in
@@ -0,0 +1,62 @@
+#
+# Summary: The configuration below implements multi-language error documents through content-negotiation
+# Provides: Extra
+#
+
+#
+# The configuration below implements multi-language error documents through
+# content-negotiation.
+#
+# Required modules: mod_alias, mod_include, mod_negotiation
+#
+# We use Alias to redirect any /error/HTTP_.html.var response to
+# our collection of by-error message multi-language collections. We use
+# includes to substitute the appropriate text.
+#
+# You can modify the messages' appearance without changing any of the
+# default HTTP_.html.var files by adding the line:
+#
+# Alias /error/include/ "/your/include/path/"
+#
+# which allows you to create your own set of files by starting with the
+# @exp_errordir@/include/ files and copying them to /your/include/path/,
+# even on a per-VirtualHost basis. The default include files will display
+# your Apache version number and your ServerAdmin email address regardless
+# of the setting of ServerSignature.
+
+
+ Alias /error/ "@exp_errordir@/"
+
+
+
+ AllowOverride None
+ Options IncludesNoExec
+
+ AddOutputFilter Includes html
+ AddHandler type-map var
+
+ Require all granted
+
+ LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr
+ ForceLanguagePriority Prefer Fallback
+
+
+
+ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
+ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
+ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
+ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
+ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
+ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
+ErrorDocument 410 /error/HTTP_GONE.html.var
+ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
+ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
+ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
+ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
+ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
+ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
+ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
+ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
+ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
+ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
+
diff --git httpd/docs/conf/extra-available/httpd-proxy.conf.in httpd/docs/conf/extra-available/httpd-proxy.conf.in
new file mode 100644
index 000000000..73fb5d70e
--- /dev/null
+++ httpd/docs/conf/extra-available/httpd-proxy.conf.in
@@ -0,0 +1,18 @@
+#
+# Summary: proxy_module configure
+# Provides: Extra
+#
+
+
+
+ AddDefaultCharset off
+ Require all denied
+ #Require host .example.com
+
+
+ # Enable/disable the handling of HTTP/1.1 "Via:" headers.
+ # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
+ # Set to one of: Off | On | Full | Block
+
+ ProxyVia On
+
diff --git httpd/docs/conf/include/Directory_cgibin_default.conf.in httpd/docs/conf/include/Directory_cgibin_default.conf.in
new file mode 100644
index 000000000..29fb7f057
--- /dev/null
+++ httpd/docs/conf/include/Directory_cgibin_default.conf.in
@@ -0,0 +1,12 @@
+#
+# Summary: Default config for CGI directory
+# Provides: Directory
+# Provides: Directory-cgi
+#
+
+#
+# "@exp_cgidir@" should be changed to whatever your ScriptAliased
+# CGI directory exists, if you have that configured.
+#
+Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
+Require all granted
diff --git httpd/docs/conf/include/Directory_html_default.conf.in httpd/docs/conf/include/Directory_html_default.conf.in
new file mode 100644
index 000000000..53e32f114
--- /dev/null
+++ httpd/docs/conf/include/Directory_html_default.conf.in
@@ -0,0 +1,31 @@
+#
+# Summary: Default config for html documents
+# Provides: Directory
+# Provides: Directory-html
+#
+
+#
+# Possible values for the Options directive are "None", "All",
+# or any combination of:
+# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
+#
+# Note that "MultiViews" must be named *explicitly* --- "Options All"
+# doesn't give it to you.
+#
+# The Options directive is both complicated and important. Please see
+# http://httpd.apache.org/docs/2.2/mod/core.html#options
+# for more information.
+#
+Options Includes FollowSymLinks MultiViews
+
+#
+# AllowOverride controls what directives may be placed in .htaccess files.
+# It can be "All", "None", or any combination of the keywords:
+# Options FileInfo AuthConfig Limit
+#
+AllowOverride None
+
+#
+# Controls who can get stuff from this server.
+#
+Require all granted
diff --git httpd/docs/conf/include/Directory_root_default.conf.in httpd/docs/conf/include/Directory_root_default.conf.in
new file mode 100644
index 000000000..bcb8066bc
--- /dev/null
+++ httpd/docs/conf/include/Directory_root_default.conf.in
@@ -0,0 +1,8 @@
+#
+# Summary: Default config for all dirs
+# Provides: Directory
+# Provides: Directory-root
+#
+Options +FollowSymLinks -Indexes
+AllowOverride None
+Require all denied
diff --git httpd/docs/conf/mods-available/actions.load.in httpd/docs/conf/mods-available/actions.load.in
new file mode 100644
index 000000000..ceb36fcb7
--- /dev/null
+++ httpd/docs/conf/mods-available/actions.load.in
@@ -0,0 +1 @@
+LoadModule actions_module @rel_libexecdir@/mod_actions.so
diff --git httpd/docs/conf/mods-available/alias.load.in httpd/docs/conf/mods-available/alias.load.in
new file mode 100644
index 000000000..26a732cf2
--- /dev/null
+++ httpd/docs/conf/mods-available/alias.load.in
@@ -0,0 +1 @@
+LoadModule alias_module @rel_libexecdir@/mod_alias.so
diff --git httpd/docs/conf/mods-available/asis.load.in httpd/docs/conf/mods-available/asis.load.in
new file mode 100644
index 000000000..800b90154
--- /dev/null
+++ httpd/docs/conf/mods-available/asis.load.in
@@ -0,0 +1 @@
+LoadModule asis_module @rel_libexecdir@/mod_asis.so
diff --git httpd/docs/conf/mods-available/auth_basic.load.in httpd/docs/conf/mods-available/auth_basic.load.in
new file mode 100644
index 000000000..cfb2e09bd
--- /dev/null
+++ httpd/docs/conf/mods-available/auth_basic.load.in
@@ -0,0 +1 @@
+LoadModule auth_basic_module @rel_libexecdir@/mod_auth_basic.so
diff --git httpd/docs/conf/mods-available/auth_digest.load.in httpd/docs/conf/mods-available/auth_digest.load.in
new file mode 100644
index 000000000..6260c33cc
--- /dev/null
+++ httpd/docs/conf/mods-available/auth_digest.load.in
@@ -0,0 +1 @@
+LoadModule auth_digest_module @rel_libexecdir@/mod_auth_digest.so
diff --git httpd/docs/conf/mods-available/authn_alias.load.in httpd/docs/conf/mods-available/authn_alias.load.in
new file mode 100644
index 000000000..2fde1b913
--- /dev/null
+++ httpd/docs/conf/mods-available/authn_alias.load.in
@@ -0,0 +1 @@
+LoadModule authn_alias_module @rel_libexecdir@/mod_authn_alias.so
diff --git httpd/docs/conf/mods-available/authn_anon.load.in httpd/docs/conf/mods-available/authn_anon.load.in
new file mode 100644
index 000000000..8a08754a4
--- /dev/null
+++ httpd/docs/conf/mods-available/authn_anon.load.in
@@ -0,0 +1 @@
+LoadModule authn_anon_module @rel_libexecdir@/mod_authn_anon.so
diff --git httpd/docs/conf/mods-available/authn_dbd.load.in httpd/docs/conf/mods-available/authn_dbd.load.in
new file mode 100644
index 000000000..c5dbf067c
--- /dev/null
+++ httpd/docs/conf/mods-available/authn_dbd.load.in
@@ -0,0 +1 @@
+LoadModule authn_dbd_module @rel_libexecdir@/mod_authn_dbd.so
diff --git httpd/docs/conf/mods-available/authn_dbm.load.in httpd/docs/conf/mods-available/authn_dbm.load.in
new file mode 100644
index 000000000..627e6461a
--- /dev/null
+++ httpd/docs/conf/mods-available/authn_dbm.load.in
@@ -0,0 +1 @@
+LoadModule authn_dbm_module @rel_libexecdir@/mod_authn_dbm.so
diff --git httpd/docs/conf/mods-available/authn_default.load.in httpd/docs/conf/mods-available/authn_default.load.in
new file mode 100644
index 000000000..297a282c5
--- /dev/null
+++ httpd/docs/conf/mods-available/authn_default.load.in
@@ -0,0 +1 @@
+LoadModule authn_default_module @rel_libexecdir@/mod_authn_default.so
diff --git httpd/docs/conf/mods-available/authn_file.load.in httpd/docs/conf/mods-available/authn_file.load.in
new file mode 100644
index 000000000..23b67c824
--- /dev/null
+++ httpd/docs/conf/mods-available/authn_file.load.in
@@ -0,0 +1 @@
+LoadModule authn_file_module @rel_libexecdir@/mod_authn_file.so
diff --git httpd/docs/conf/mods-available/authnz_ldap.load.in httpd/docs/conf/mods-available/authnz_ldap.load.in
new file mode 100644
index 000000000..8fde48e24
--- /dev/null
+++ httpd/docs/conf/mods-available/authnz_ldap.load.in
@@ -0,0 +1,2 @@
+# Depends: ldap
+LoadModule authnz_ldap_module @rel_libexecdir@/mod_authnz_ldap.so
diff --git httpd/docs/conf/mods-available/authz_dbm.load.in httpd/docs/conf/mods-available/authz_dbm.load.in
new file mode 100644
index 000000000..901c6e43b
--- /dev/null
+++ httpd/docs/conf/mods-available/authz_dbm.load.in
@@ -0,0 +1 @@
+LoadModule authz_dbm_module @rel_libexecdir@/mod_authz_dbm.so
diff --git httpd/docs/conf/mods-available/authz_default.load.in httpd/docs/conf/mods-available/authz_default.load.in
new file mode 100644
index 000000000..38dcad58c
--- /dev/null
+++ httpd/docs/conf/mods-available/authz_default.load.in
@@ -0,0 +1 @@
+LoadModule authz_default_module @rel_libexecdir@/mod_authz_default.so
diff --git httpd/docs/conf/mods-available/authz_groupfile.load.in httpd/docs/conf/mods-available/authz_groupfile.load.in
new file mode 100644
index 000000000..9d2931978
--- /dev/null
+++ httpd/docs/conf/mods-available/authz_groupfile.load.in
@@ -0,0 +1 @@
+LoadModule authz_groupfile_module @rel_libexecdir@/mod_authz_groupfile.so
diff --git httpd/docs/conf/mods-available/authz_host.load.in httpd/docs/conf/mods-available/authz_host.load.in
new file mode 100644
index 000000000..1f0ef4bd1
--- /dev/null
+++ httpd/docs/conf/mods-available/authz_host.load.in
@@ -0,0 +1 @@
+LoadModule authz_host_module @rel_libexecdir@/mod_authz_host.so
diff --git httpd/docs/conf/mods-available/authz_owner.load.in httpd/docs/conf/mods-available/authz_owner.load.in
new file mode 100644
index 000000000..c49fa0882
--- /dev/null
+++ httpd/docs/conf/mods-available/authz_owner.load.in
@@ -0,0 +1 @@
+LoadModule authz_owner_module @rel_libexecdir@/mod_authz_owner.so
diff --git httpd/docs/conf/mods-available/authz_user.load.in httpd/docs/conf/mods-available/authz_user.load.in
new file mode 100644
index 000000000..74db051cc
--- /dev/null
+++ httpd/docs/conf/mods-available/authz_user.load.in
@@ -0,0 +1 @@
+LoadModule authz_user_module @rel_libexecdir@/mod_authz_user.so
diff --git httpd/docs/conf/mods-available/autoindex.load.in httpd/docs/conf/mods-available/autoindex.load.in
new file mode 100644
index 000000000..c12ca80b1
--- /dev/null
+++ httpd/docs/conf/mods-available/autoindex.load.in
@@ -0,0 +1 @@
+LoadModule autoindex_module @rel_libexecdir@/mod_autoindex.so
diff --git httpd/docs/conf/mods-available/cache.load.in httpd/docs/conf/mods-available/cache.load.in
new file mode 100644
index 000000000..abe2734c8
--- /dev/null
+++ httpd/docs/conf/mods-available/cache.load.in
@@ -0,0 +1 @@
+LoadModule cache_module @rel_libexecdir@/mod_cache.so
diff --git httpd/docs/conf/mods-available/cgi.load.in httpd/docs/conf/mods-available/cgi.load.in
new file mode 100644
index 000000000..dd8738fb3
--- /dev/null
+++ httpd/docs/conf/mods-available/cgi.load.in
@@ -0,0 +1 @@
+LoadModule cgi_module @rel_libexecdir@/mod_cgi.so
diff --git httpd/docs/conf/mods-available/cgid.conf.in httpd/docs/conf/mods-available/cgid.conf.in
new file mode 100644
index 000000000..944879fd8
--- /dev/null
+++ httpd/docs/conf/mods-available/cgid.conf.in
@@ -0,0 +1,8 @@
+# Socket for cgid communication
+
+ #
+ # ScriptSock: On threaded servers, designate the path to the UNIX
+ # socket used to communicate with the CGI daemon of mod_cgid.
+ #
+ Scriptsock @rel_runtimedir@/cgisock
+
diff --git httpd/docs/conf/mods-available/cgid.load.in httpd/docs/conf/mods-available/cgid.load.in
new file mode 100644
index 000000000..5f0442e68
--- /dev/null
+++ httpd/docs/conf/mods-available/cgid.load.in
@@ -0,0 +1 @@
+LoadModule cgid_module @rel_libexecdir@/mod_cgid.so
diff --git httpd/docs/conf/mods-available/charset_lite.load.in httpd/docs/conf/mods-available/charset_lite.load.in
new file mode 100644
index 000000000..71a9cc9fb
--- /dev/null
+++ httpd/docs/conf/mods-available/charset_lite.load.in
@@ -0,0 +1 @@
+LoadModule charset_lite_module @rel_libexecdir@/mod_charset_lite.so
diff --git httpd/docs/conf/mods-available/dav.conf.in httpd/docs/conf/mods-available/dav.conf.in
new file mode 100644
index 000000000..f11dd52dc
--- /dev/null
+++ httpd/docs/conf/mods-available/dav.conf.in
@@ -0,0 +1,22 @@
+#
+# Distributed authoring and versioning (WebDAV)
+#
+# Required modules: mod_dav, mod_dav_fs, mod_setenvif, mod_alias
+# mod_auth_digest, mod_authn_file
+#
+
+
+ #
+ # The following directives disable redirects on non-GET requests for
+ # a directory that does not include the trailing slash. This fixes a
+ # problem with several clients that do not appropriately handle
+ # redirects for folders with DAV methods.
+ #
+ BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
+ BrowserMatch "MS FrontPage" redirect-carefully
+ BrowserMatch "^WebDrive" redirect-carefully
+ BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
+ BrowserMatch "^gnome-vfs/1.0" redirect-carefully
+ BrowserMatch "^XML Spy" redirect-carefully
+ BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
+
diff --git httpd/docs/conf/mods-available/dav.load.in httpd/docs/conf/mods-available/dav.load.in
new file mode 100644
index 000000000..0de3741ef
--- /dev/null
+++ httpd/docs/conf/mods-available/dav.load.in
@@ -0,0 +1 @@
+LoadModule dav_module @rel_libexecdir@/mod_dav.so
diff --git httpd/docs/conf/mods-available/dav_fs.conf.in httpd/docs/conf/mods-available/dav_fs.conf.in
new file mode 100644
index 000000000..ba6f0f0fe
--- /dev/null
+++ httpd/docs/conf/mods-available/dav_fs.conf.in
@@ -0,0 +1,8 @@
+
+ #
+ # The User/Group specified in httpd.conf needs to have write permissions
+ # on the directory where the DavLockDB is placed and on any directory where
+ # "Dav On" is specified.
+
+ DavLockDB "@@ServerRoot@@/lock/DavLock"
+
diff --git httpd/docs/conf/mods-available/dav_fs.load.in httpd/docs/conf/mods-available/dav_fs.load.in
new file mode 100644
index 000000000..12d551152
--- /dev/null
+++ httpd/docs/conf/mods-available/dav_fs.load.in
@@ -0,0 +1,2 @@
+# Depends: dav
+LoadModule dav_fs_module @rel_libexecdir@/mod_dav_fs.so
diff --git httpd/docs/conf/mods-available/dav_lock.load.in httpd/docs/conf/mods-available/dav_lock.load.in
new file mode 100644
index 000000000..0c0c31964
--- /dev/null
+++ httpd/docs/conf/mods-available/dav_lock.load.in
@@ -0,0 +1 @@
+LoadModule dav_lock_module @rel_libexecdir@/mod_dav_lock.so
diff --git httpd/docs/conf/mods-available/dbd.load.in httpd/docs/conf/mods-available/dbd.load.in
new file mode 100644
index 000000000..cb85a802e
--- /dev/null
+++ httpd/docs/conf/mods-available/dbd.load.in
@@ -0,0 +1 @@
+LoadModule dbd_module @rel_libexecdir@/mod_dbd.so
diff --git httpd/docs/conf/mods-available/deflate.conf.in httpd/docs/conf/mods-available/deflate.conf.in
new file mode 100644
index 000000000..a58609bac
--- /dev/null
+++ httpd/docs/conf/mods-available/deflate.conf.in
@@ -0,0 +1,3 @@
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/xml
+
diff --git httpd/docs/conf/mods-available/deflate.load.in httpd/docs/conf/mods-available/deflate.load.in
new file mode 100644
index 000000000..7822a41ce
--- /dev/null
+++ httpd/docs/conf/mods-available/deflate.load.in
@@ -0,0 +1 @@
+LoadModule deflate_module @rel_libexecdir@/mod_deflate.so
diff --git httpd/docs/conf/mods-available/dir.conf.in httpd/docs/conf/mods-available/dir.conf.in
new file mode 100644
index 000000000..a5c7c14ab
--- /dev/null
+++ httpd/docs/conf/mods-available/dir.conf.in
@@ -0,0 +1,7 @@
+
+ #
+ # DirectoryIndex: sets the file that Apache will serve if a directory
+ # is requested.
+ #
+ DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml
+
diff --git httpd/docs/conf/mods-available/dir.load.in httpd/docs/conf/mods-available/dir.load.in
new file mode 100644
index 000000000..2927ac9c8
--- /dev/null
+++ httpd/docs/conf/mods-available/dir.load.in
@@ -0,0 +1 @@
+LoadModule dir_module @rel_libexecdir@/mod_dir.so
diff --git httpd/docs/conf/mods-available/disk_cache.conf.in httpd/docs/conf/mods-available/disk_cache.conf.in
new file mode 100644
index 000000000..d89a41dad
--- /dev/null
+++ httpd/docs/conf/mods-available/disk_cache.conf.in
@@ -0,0 +1,6 @@
+
+ CacheRoot @htcacheclean_cachepath@
+ CacheEnable disk /
+ CacheDirLevels 5
+ CacheDirLength 3
+
diff --git httpd/docs/conf/mods-available/disk_cache.load.in httpd/docs/conf/mods-available/disk_cache.load.in
new file mode 100644
index 000000000..27fcdf4e9
--- /dev/null
+++ httpd/docs/conf/mods-available/disk_cache.load.in
@@ -0,0 +1,2 @@
+# Depends: cache
+LoadModule disk_cache_module @rel_libexecdir@/mod_disk_cache.so
diff --git httpd/docs/conf/mods-available/env.load.in httpd/docs/conf/mods-available/env.load.in
new file mode 100644
index 000000000..65146d095
--- /dev/null
+++ httpd/docs/conf/mods-available/env.load.in
@@ -0,0 +1 @@
+LoadModule env_module @rel_libexecdir@/mod_env.so
diff --git httpd/docs/conf/mods-available/expires.load.in httpd/docs/conf/mods-available/expires.load.in
new file mode 100644
index 000000000..5d58196bb
--- /dev/null
+++ httpd/docs/conf/mods-available/expires.load.in
@@ -0,0 +1 @@
+LoadModule expires_module @rel_libexecdir@/mod_expires.so
diff --git httpd/docs/conf/mods-available/file_cache.load.in httpd/docs/conf/mods-available/file_cache.load.in
new file mode 100644
index 000000000..ce4a749b0
--- /dev/null
+++ httpd/docs/conf/mods-available/file_cache.load.in
@@ -0,0 +1,2 @@
+# Depends: cache
+LoadModule file_cache_module @rel_libexecdir@/mod_file_cache.so
diff --git httpd/docs/conf/mods-available/filter.load.in httpd/docs/conf/mods-available/filter.load.in
new file mode 100644
index 000000000..bfd22b188
--- /dev/null
+++ httpd/docs/conf/mods-available/filter.load.in
@@ -0,0 +1 @@
+LoadModule filter_module @rel_libexecdir@/mod_filter.so
diff --git httpd/docs/conf/mods-available/headers.load.in httpd/docs/conf/mods-available/headers.load.in
new file mode 100644
index 000000000..af8c20b57
--- /dev/null
+++ httpd/docs/conf/mods-available/headers.load.in
@@ -0,0 +1 @@
+LoadModule headers_module @rel_libexecdir@/mod_headers.so
diff --git httpd/docs/conf/mods-available/ident.load.in httpd/docs/conf/mods-available/ident.load.in
new file mode 100644
index 000000000..1657015a9
--- /dev/null
+++ httpd/docs/conf/mods-available/ident.load.in
@@ -0,0 +1 @@
+LoadModule ident_module @rel_libexecdir@/mod_ident.so
diff --git httpd/docs/conf/mods-available/imagemap.load.in httpd/docs/conf/mods-available/imagemap.load.in
new file mode 100644
index 000000000..e0aafe283
--- /dev/null
+++ httpd/docs/conf/mods-available/imagemap.load.in
@@ -0,0 +1 @@
+LoadModule imagemap_module @rel_libexecdir@/mod_imagemap.so
diff --git httpd/docs/conf/mods-available/include.load.in httpd/docs/conf/mods-available/include.load.in
new file mode 100644
index 000000000..5808241f6
--- /dev/null
+++ httpd/docs/conf/mods-available/include.load.in
@@ -0,0 +1 @@
+LoadModule include_module @rel_libexecdir@/mod_include.so
diff --git httpd/docs/conf/mods-available/info.load.in httpd/docs/conf/mods-available/info.load.in
new file mode 100644
index 000000000..6651ffeb3
--- /dev/null
+++ httpd/docs/conf/mods-available/info.load.in
@@ -0,0 +1 @@
+LoadModule info_module @rel_libexecdir@/mod_info.so
diff --git httpd/docs/conf/mods-available/ldap.load.in httpd/docs/conf/mods-available/ldap.load.in
new file mode 100644
index 000000000..c37d993f5
--- /dev/null
+++ httpd/docs/conf/mods-available/ldap.load.in
@@ -0,0 +1 @@
+LoadModule ldap_module @rel_libexecdir@/mod_ldap.so
diff --git httpd/docs/conf/mods-available/log_config.conf.in httpd/docs/conf/mods-available/log_config.conf.in
new file mode 100644
index 000000000..c17dd0cfb
--- /dev/null
+++ httpd/docs/conf/mods-available/log_config.conf.in
@@ -0,0 +1,33 @@
+#
+# Summary: Loging configure
+# Provides: Extra
+#
+
+
+ #
+ # The following directives define some format nicknames for use with
+ # a CustomLog directive (see below).
+ #
+ LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
+ LogFormat "%a %l %u %t \"%r\" %>s %b" common
+
+
+ # You need to enable mod_logio.c to use %I and %O
+ LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
+
+
+ #
+ # The location and format of the access logfile (Common Logfile Format).
+ # If you do not define any access logfiles within a
+ # container, they will be logged here. Contrariwise, if you *do*
+ # define per- access logfiles, transactions will be
+ # logged therein and *not* in this file.
+ #
+ CustomLog @rel_logfiledir@/access_log common
+
+ #
+ # If you prefer a logfile with access, agent, and referer information
+ # (Combined Logfile Format) you can use the following directive.
+ #
+ #CustomLog @rel_logfiledir@/access_log combined
+
diff --git httpd/docs/conf/mods-available/log_config.load.in httpd/docs/conf/mods-available/log_config.load.in
new file mode 100644
index 000000000..b6e0bfd8a
--- /dev/null
+++ httpd/docs/conf/mods-available/log_config.load.in
@@ -0,0 +1 @@
+LoadModule log_config_module @rel_libexecdir@/mod_log_config.so
diff --git httpd/docs/conf/mods-available/log_forensic.load.in httpd/docs/conf/mods-available/log_forensic.load.in
new file mode 100644
index 000000000..d945e0cfc
--- /dev/null
+++ httpd/docs/conf/mods-available/log_forensic.load.in
@@ -0,0 +1 @@
+LoadModule log_forensic_module @rel_libexecdir@/mod_log_forensic.so
diff --git httpd/docs/conf/mods-available/mem_cache.conf.in httpd/docs/conf/mods-available/mem_cache.conf.in
new file mode 100644
index 000000000..6c3a849f8
--- /dev/null
+++ httpd/docs/conf/mods-available/mem_cache.conf.in
@@ -0,0 +1,12 @@
+#
+# Summary: Default configs for mem_cache_module
+# Provides: Extra
+#
+
+
+ CacheEnable mem /
+ MCacheSize 4096
+ MCacheMaxObjectCount 100
+ MCacheMinObjectSize 1
+ MCacheMaxObjectSize 2048
+
diff --git httpd/docs/conf/mods-available/mem_cache.load.in httpd/docs/conf/mods-available/mem_cache.load.in
new file mode 100644
index 000000000..d938cf23d
--- /dev/null
+++ httpd/docs/conf/mods-available/mem_cache.load.in
@@ -0,0 +1,2 @@
+# Depends: cache
+LoadModule mem_cache_module @rel_libexecdir@/mod_mem_cache.so
diff --git httpd/docs/conf/mods-available/mime.conf.in httpd/docs/conf/mods-available/mime.conf.in
new file mode 100644
index 000000000..6415b4ec2
--- /dev/null
+++ httpd/docs/conf/mods-available/mime.conf.in
@@ -0,0 +1,7 @@
+
+ #
+ # TypesConfig points to the file containing the list of mappings from
+ # filename extension to MIME-type.
+ #
+ TypesConfig @rel_sysconfdir@/mime.types
+
diff --git httpd/docs/conf/mods-available/mime.load.in httpd/docs/conf/mods-available/mime.load.in
new file mode 100644
index 000000000..4cb8b9780
--- /dev/null
+++ httpd/docs/conf/mods-available/mime.load.in
@@ -0,0 +1 @@
+LoadModule mime_module @rel_libexecdir@/mod_mime.so
diff --git httpd/docs/conf/mods-available/mime_magic.conf.in httpd/docs/conf/mods-available/mime_magic.conf.in
new file mode 100644
index 000000000..6dac1bc63
--- /dev/null
+++ httpd/docs/conf/mods-available/mime_magic.conf.in
@@ -0,0 +1,13 @@
+#
+# Summary: Default configs for mime_magic_module
+# Provides: Extra
+#
+
+
+ #
+ # The mod_mime_magic module allows the server to use various hints from the
+ # contents of the file itself to determine its type. The MIMEMagicFile
+ # directive tells the module where the hint definitions are located.
+ #
+ MIMEMagicFile @rel_sysconfdir@/magic
+
diff --git httpd/docs/conf/mods-available/mime_magic.load.in httpd/docs/conf/mods-available/mime_magic.load.in
new file mode 100644
index 000000000..ca8a9e49c
--- /dev/null
+++ httpd/docs/conf/mods-available/mime_magic.load.in
@@ -0,0 +1 @@
+LoadModule mime_magic_module @rel_libexecdir@/mod_mime_magic.so
diff --git httpd/docs/conf/mods-available/negotiation.load.in httpd/docs/conf/mods-available/negotiation.load.in
new file mode 100644
index 000000000..f481d7768
--- /dev/null
+++ httpd/docs/conf/mods-available/negotiation.load.in
@@ -0,0 +1 @@
+LoadModule negotiation_module @rel_libexecdir@/mod_negotiation.so
diff --git httpd/docs/conf/mods-available/proxy.conf.in httpd/docs/conf/mods-available/proxy.conf.in
new file mode 100644
index 000000000..87a3a0b92
--- /dev/null
+++ httpd/docs/conf/mods-available/proxy.conf.in
@@ -0,0 +1,7 @@
+
+ #turning ProxyRequests on and allowing proxying from all may allow
+ #spammers to use your proxy to send email.
+
+ ProxyRequests Off
+
+
diff --git httpd/docs/conf/mods-available/proxy.load.in httpd/docs/conf/mods-available/proxy.load.in
new file mode 100644
index 000000000..da5ec8de0
--- /dev/null
+++ httpd/docs/conf/mods-available/proxy.load.in
@@ -0,0 +1 @@
+LoadModule proxy_module @rel_libexecdir@/mod_proxy.so
diff --git httpd/docs/conf/mods-available/proxy_ajp.load.in httpd/docs/conf/mods-available/proxy_ajp.load.in
new file mode 100644
index 000000000..49dc6b182
--- /dev/null
+++ httpd/docs/conf/mods-available/proxy_ajp.load.in
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_ajp_module @rel_libexecdir@/mod_proxy_ajp.so
diff --git httpd/docs/conf/mods-available/proxy_balancer.load.in httpd/docs/conf/mods-available/proxy_balancer.load.in
new file mode 100644
index 000000000..cd99e0fec
--- /dev/null
+++ httpd/docs/conf/mods-available/proxy_balancer.load.in
@@ -0,0 +1,2 @@
+# Depends: proxy cache
+LoadModule proxy_balancer_module @rel_libexecdir@/mod_proxy_balancer.so
diff --git httpd/docs/conf/mods-available/proxy_connect.load.in httpd/docs/conf/mods-available/proxy_connect.load.in
new file mode 100644
index 000000000..14b6f1dd2
--- /dev/null
+++ httpd/docs/conf/mods-available/proxy_connect.load.in
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_connect_module @rel_libexecdir@/mod_proxy_connect.so
diff --git httpd/docs/conf/mods-available/proxy_ftp.load.in httpd/docs/conf/mods-available/proxy_ftp.load.in
new file mode 100644
index 000000000..23127b8ad
--- /dev/null
+++ httpd/docs/conf/mods-available/proxy_ftp.load.in
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_ftp_module @rel_libexecdir@/mod_proxy_ftp.so
diff --git httpd/docs/conf/mods-available/proxy_http.load.in httpd/docs/conf/mods-available/proxy_http.load.in
new file mode 100644
index 000000000..7b3905174
--- /dev/null
+++ httpd/docs/conf/mods-available/proxy_http.load.in
@@ -0,0 +1,2 @@
+# Depends: proxy
+LoadModule proxy_http_module @rel_libexecdir@/mod_proxy_http.so
diff --git httpd/docs/conf/mods-available/rewrite.load.in httpd/docs/conf/mods-available/rewrite.load.in
new file mode 100644
index 000000000..f5ae2b722
--- /dev/null
+++ httpd/docs/conf/mods-available/rewrite.load.in
@@ -0,0 +1 @@
+LoadModule rewrite_module @rel_libexecdir@/mod_rewrite.so
diff --git httpd/docs/conf/mods-available/setenvif.conf.in httpd/docs/conf/mods-available/setenvif.conf.in
new file mode 100644
index 000000000..6aebc87a2
--- /dev/null
+++ httpd/docs/conf/mods-available/setenvif.conf.in
@@ -0,0 +1,11 @@
+
+ #
+ # The following directives modify normal HTTP response behavior to
+ # handle known problems with browser implementations.
+ #
+ BrowserMatch "Mozilla/2" nokeepalive
+ BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+ BrowserMatch "RealPlayer 4\.0" force-response-1.0
+ BrowserMatch "Java/1\.0" force-response-1.0
+ BrowserMatch "JDK/1\.0" force-response-1.0
+
diff --git httpd/docs/conf/mods-available/setenvif.load.in httpd/docs/conf/mods-available/setenvif.load.in
new file mode 100644
index 000000000..4b670abcc
--- /dev/null
+++ httpd/docs/conf/mods-available/setenvif.load.in
@@ -0,0 +1 @@
+LoadModule setenvif_module @rel_libexecdir@/mod_setenvif.so
diff --git httpd/docs/conf/mods-available/sick-hack-to-update-modules.in httpd/docs/conf/mods-available/sick-hack-to-update-modules.in
new file mode 100644
index 000000000..7169d987a
--- /dev/null
+++ httpd/docs/conf/mods-available/sick-hack-to-update-modules.in
@@ -0,0 +1,8 @@
+#!/bin/bash
+for path in @rel_libexecdir@/*.so; do
+ module=$(echo $path|sed -e 's/.*mod_\(.*\).so/\1/');
+ if [ ! -e ${module}.load ]; then
+ module_name=${module}_module;
+ echo "LoadModule $module_name $path" > ${module}.load;
+ fi;
+done
diff --git httpd/docs/conf/mods-available/speling.load.in httpd/docs/conf/mods-available/speling.load.in
new file mode 100644
index 000000000..8dde7d956
--- /dev/null
+++ httpd/docs/conf/mods-available/speling.load.in
@@ -0,0 +1 @@
+LoadModule speling_module @rel_libexecdir@/mod_speling.so
diff --git httpd/docs/conf/mods-available/ssl.conf.in httpd/docs/conf/mods-available/ssl.conf.in
new file mode 100644
index 000000000..3990f5aa2
--- /dev/null
+++ httpd/docs/conf/mods-available/ssl.conf.in
@@ -0,0 +1,64 @@
+#
+# This is the Apache server configuration file providing SSL support.
+# It contains the configuration directives to instruct the server how to
+# serve pages over an https connection. For detailing information about these
+# directives see
+#
+# Do NOT simply read the instructions in here without understanding
+# what they do. They're here only as hints or reminders. If you are unsure
+# consult the online docs. You have been warned.
+#
+
+
+ #
+ # Pseudo Random Number Generator (PRNG):
+ # Configure one or more sources to seed the PRNG of the SSL library.
+ # The seed data should be of good random quality.
+ # WARNING! On some platforms /dev/random blocks if not enough entropy
+ # is available. This means you then cannot use the /dev/random device
+ # because it would lead to very long connection times (as long as
+ # it requires to make more entropy available). But usually those
+ # platforms additionally provide a /dev/urandom device which doesn't
+ # block. So, if available, use this one instead. Read the mod_ssl User
+ # Manual for more details.
+ #
+ #SSLRandomSeed startup file:/dev/random 512
+ #SSLRandomSeed startup file:/dev/urandom 512
+ #SSLRandomSeed connect file:/dev/random 512
+ #SSLRandomSeed connect file:/dev/urandom 512
+
+
+##
+## SSL Global Context
+##
+## All SSL configuration in this context applies both to
+## the main server and all SSL-enabled virtual hosts.
+##
+
+
+ #
+ # Some MIME-types for downloading Certificates and CRLs
+ #
+ AddType application/x-x509-ca-cert .crt
+ AddType application/x-pkcs7-crl .crl
+
+
+
+ # Pass Phrase Dialog:
+ # Configure the pass phrase gathering process.
+ # The filtering dialog program (`builtin' is a internal
+ # terminal dialog) has to provide the pass phrase on stdout.
+ SSLPassPhraseDialog builtin
+
+ # Inter-Process Session Cache:
+ # Configure the SSL Session Cache: First the mechanism
+ # to use and second the expiring timeout (in seconds).
+ #SSLSessionCache "dbm:@exp_runtimedir@/ssl_scache"
+ SSLSessionCache "shmcb:@exp_runtimedir@/ssl_scache(512000)"
+ SSLSessionCacheTimeout 300
+
+ # Semaphore:
+ # Configure the path to the mutual exclusion semaphore the
+ # SSL engine uses internally for inter-process synchronization.
+ #SSLMutex "file:@exp_runtimedir@/ssl_mutex"
+ Mutex default ssl-cache
diff --git httpd/docs/conf/mods-available/ssl.load.in httpd/docs/conf/mods-available/ssl.load.in
new file mode 100644
index 000000000..a698a3d57
--- /dev/null
+++ httpd/docs/conf/mods-available/ssl.load.in
@@ -0,0 +1 @@
+LoadModule ssl_module @rel_libexecdir@/mod_ssl.so
diff --git httpd/docs/conf/mods-available/status.load.in httpd/docs/conf/mods-available/status.load.in
new file mode 100644
index 000000000..4ebf8441e
--- /dev/null
+++ httpd/docs/conf/mods-available/status.load.in
@@ -0,0 +1 @@
+LoadModule status_module @rel_libexecdir@/mod_status.so
diff --git httpd/docs/conf/mods-available/suexec.load.in httpd/docs/conf/mods-available/suexec.load.in
new file mode 100644
index 000000000..f5ddf3a05
--- /dev/null
+++ httpd/docs/conf/mods-available/suexec.load.in
@@ -0,0 +1 @@
+LoadModule suexec_module @rel_libexecdir@/mod_suexec.so
diff --git httpd/docs/conf/mods-available/unique_id.load.in httpd/docs/conf/mods-available/unique_id.load.in
new file mode 100644
index 000000000..ae944104d
--- /dev/null
+++ httpd/docs/conf/mods-available/unique_id.load.in
@@ -0,0 +1 @@
+LoadModule unique_id_module @rel_libexecdir@/mod_unique_id.so
diff --git httpd/docs/conf/mods-available/userdir.conf.in httpd/docs/conf/mods-available/userdir.conf.in
new file mode 100644
index 000000000..c1aa81d28
--- /dev/null
+++ httpd/docs/conf/mods-available/userdir.conf.in
@@ -0,0 +1,28 @@
+# Settings for user home directories
+#
+# Required module: mod_userdir
+
+
+ #
+ # UserDir: The name of the directory that is appended onto a user's home
+ # directory if a ~user request is received. Note that you must also set
+ # the default access control for these directories, as in the example below.
+ #
+ UserDir public_html
+ UserDir disabled root
+
+ #
+ # Control access to UserDir directories. The following is an example
+ # for a site where these directories are restricted to read-only.
+ #
+
+ AllowOverride FileInfo AuthConfig Limit Indexes
+ Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+
+ Require all granted
+
+
+ Require all denied
+
+
+
diff --git httpd/docs/conf/mods-available/userdir.load.in httpd/docs/conf/mods-available/userdir.load.in
new file mode 100644
index 000000000..53dc724e7
--- /dev/null
+++ httpd/docs/conf/mods-available/userdir.load.in
@@ -0,0 +1 @@
+LoadModule userdir_module @rel_libexecdir@/mod_userdir.so
diff --git httpd/docs/conf/mods-available/usertrack.load.in httpd/docs/conf/mods-available/usertrack.load.in
new file mode 100644
index 000000000..b57cee452
--- /dev/null
+++ httpd/docs/conf/mods-available/usertrack.load.in
@@ -0,0 +1 @@
+LoadModule usertrack_module @rel_libexecdir@/mod_usertrack.so
diff --git httpd/docs/conf/mods-available/version.load.in httpd/docs/conf/mods-available/version.load.in
new file mode 100644
index 000000000..33d66e5d9
--- /dev/null
+++ httpd/docs/conf/mods-available/version.load.in
@@ -0,0 +1 @@
+LoadModule version_module @rel_libexecdir@/mod_version.so
diff --git httpd/docs/conf/mods-available/vhost_alias.load.in httpd/docs/conf/mods-available/vhost_alias.load.in
new file mode 100644
index 000000000..a0960167a
--- /dev/null
+++ httpd/docs/conf/mods-available/vhost_alias.load.in
@@ -0,0 +1 @@
+LoadModule vhost_alias_module @rel_libexecdir@/mod_vhost_alias.so
diff --git httpd/docs/conf/ports-available/http.conf.in httpd/docs/conf/ports-available/http.conf.in
new file mode 100644
index 000000000..b91c07e1b
--- /dev/null
+++ httpd/docs/conf/ports-available/http.conf.in
@@ -0,0 +1,16 @@
+#
+# Summary: Set @@Port@@ port listen
+# Provides: Listen
+# Provides: Listen-default
+#
+
+#
+# Listen: Allows you to bind Apache to specific IP addresses and/or
+# ports, instead of the default. See also the
+# directive.
+#
+# Change this to Listen on specific IP addresses as shown below to
+# prevent Apache from glomming onto all bound IP addresses.
+#
+#Listen 12.34.56.78:80
+Listen @@Port@@
diff --git httpd/docs/conf/ports-available/https.conf.in httpd/docs/conf/ports-available/https.conf.in
new file mode 100644
index 000000000..72fa3e08a
--- /dev/null
+++ httpd/docs/conf/ports-available/https.conf.in
@@ -0,0 +1,17 @@
+#
+# Summary: Set 443 port for https listen
+# Provides: Listen
+# Provides: Listen-https
+# Provides: Listen-https-default
+#
+
+
+ #
+ # When we also provide SSL we have to listen to the
+ # standard HTTP port (see above) and to the HTTPS port
+ #
+ # Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
+ # Listen directives: "Listen [::]:@@SSLPort@@" and "Listen 0.0.0.0:@@SSLPort@@"
+ #
+ Listen @@SSLPort@@
+
diff --git httpd/docs/conf/sites-available/default.conf.in httpd/docs/conf/sites-available/default.conf.in
new file mode 100644
index 000000000..9016aad69
--- /dev/null
+++ httpd/docs/conf/sites-available/default.conf.in
@@ -0,0 +1,147 @@
+#
+# Summary: Main server configuration (for default virtual host)
+# Provides: VirtualHost
+# Provides: VirtualHost-default
+#
+
+#
+# 'Main' server configuration
+#
+# The directives in this section set up the values used by the 'main'
+# server, which responds to any requests that aren't handled by a
+# definition. These values also provide defaults for
+# any containers you may define later in the file.
+#
+# All of these directives may appear inside containers,
+# in which case these default settings will be overridden for the
+# virtual host being defined.
+#
+
+
+ #
+ # ServerAdmin: Your address, where problems with the server should be
+ # e-mailed. This address appears on some server-generated pages, such
+ # as error documents. e.g. admin@your-domain.com
+ #
+ ServerAdmin your@localhost
+
+ #
+ # ServerName gives the name and port that the server uses to identify itself.
+ # This can often be determined automatically, but we recommend you specify
+ # it explicitly to prevent problems during startup.
+ #
+ # If your host doesn't have a registered DNS name, enter its IP address here.
+ #
+ #ServerName www.example.com:80
+
+ #
+ # DocumentRoot: The directory out of which you will serve your
+ # documents. By default, all requests are taken from this directory, but
+ # symbolic links and aliases may be used to point to other locations.
+ #
+ DocumentRoot "@exp_htdocsdir@"
+
+ #
+ # Each directory to which Apache has access can be configured with respect
+ # to which services and features are allowed and/or disabled in that
+ # directory (and its subdirectories).
+ #
+ # First, we configure the "default" to be a very restrictive set of
+ # features.
+ #
+
+ # Summary: Configure for all dirs by default
+ # Requires: Directory-root
+ Include @rel_sysconfdir@/include/Directory_root_default.conf
+
+
+ #
+ # Note that from this point forward you must specifically allow
+ # particular features to be enabled - so if something's not working as
+ # you might expect, make sure that you have specifically enabled it
+ # below.
+ #
+
+ #
+ # This should be changed to whatever you set DocumentRoot to.
+ #
+
+ # Summary: Configure for html documents in DocumentRoot
+ # Requires: Directory-html
+ Include @rel_sysconfdir@/include/Directory_html_default.conf
+
+
+ #
+ # ErrorLog: The location of the error log file.
+ # If you do not specify an ErrorLog directive within a
+ # container, error messages relating to that virtual host will be
+ # logged here. If you *do* define an error logfile for a
+ # container, that host's errors will be logged there and not here.
+ #
+ ErrorLog @rel_logfiledir@/error_log
+
+ #
+ # LogLevel: Control the number of messages logged to the error_log.
+ # Possible values include: debug, info, notice, warn, error, crit,
+ # alert, emerg.
+ #
+ LogLevel warn
+
+
+ #
+ # The location and format of the access logfile (Common Logfile Format).
+ # If you do not define any access logfiles within a
+ # container, they will be logged here. Contrariwise, if you *do*
+ # define per- access logfiles, transactions will be
+ # logged therein and *not* in this file.
+ #
+ CustomLog @rel_logfiledir@/access_log common
+
+ #
+ # If you prefer a logfile with access, agent, and referer information
+ # (Combined Logfile Format) you can use the following directive.
+ #
+ #CustomLog @rel_logfiledir@/access_log combined
+
+
+
+ #
+ # Redirect: Allows you to tell clients about documents that used to
+ # exist in your server's namespace, but do not anymore. The client
+ # will make a new request for the document at its new location.
+ # Example:
+ # Redirect permanent /foo http://www.example.com/bar
+
+ #
+ # Alias: Maps web paths into filesystem paths and is used to
+ # access content that does not live under the DocumentRoot.
+ # Example:
+ # Alias /webpath /full/filesystem/path
+ #
+ # If you include a trailing / on /webpath then the server will
+ # require it to be present in the URL. You will also likely
+ # need to provide a section to allow access to
+ # the filesystem path.
+
+ #
+ # ScriptAlias: This controls which directories contain server scripts.
+ # ScriptAliases are essentially the same as Aliases, except that
+ # documents in the target directory are treated as applications and
+ # run by the server when requested rather than as documents sent to the
+ # client. The same rules about trailing "/" apply to ScriptAlias
+ # directives as to Alias.
+ #
+ ScriptAlias /cgi-bin/ "@exp_cgidir@/"
+
+
+
+ #
+ # "@exp_cgidir@" should be changed to whatever your ScriptAliased
+ # CGI directory exists, if you have that configured.
+ #
+
+ # Summary: Configure for default CGI directory
+ # Requires: Directory-cgi
+ Include @rel_sysconfdir@/include/Directory_cgibin_default.conf
+
+
diff --git httpd/docs/conf/sites-available/default_https.conf.in httpd/docs/conf/sites-available/default_https.conf.in
new file mode 100644
index 000000000..256afae70
--- /dev/null
+++ httpd/docs/conf/sites-available/default_https.conf.in
@@ -0,0 +1,203 @@
+#
+# Summary: Default server configuration for https
+# Provides: VirtualHost
+# Provides: VirtualHost-https
+# Provides: VirtualHost-https-default
+#
+
+#
+# This is the Apache server configuration file providing SSL support.
+# It contains the configuration directives to instruct the server how to
+# serve pages over an https connection. For detailing information about these
+# directives see
+#
+# Do NOT simply read the instructions in here without understanding
+# what they do. They're here only as hints or reminders. If you are unsure
+# consult the online docs. You have been warned.
+#
+
+
+ ##
+ ## SSL Virtual Host Context
+ ##
+
+
+
+ # General setup for the virtual host
+ DocumentRoot "@exp_htdocsdir@"
+ ServerName www.example.com:@@SSLPort@@
+ ServerAdmin you@example.com
+ ErrorLog "@exp_logfiledir@/error_log"
+ TransferLog "@exp_logfiledir@/access_log"
+
+ # SSL Engine Switch:
+ # Enable/Disable SSL for this virtual host.
+ SSLEngine on
+
+ # SSL Protocol support:
+ # List the protocol versions which clients are allowed to
+ # connect with. Disable SSLv2 by default (cf. RFC 6176).
+ SSLProtocol all -SSLv2
+
+ # SSL Cipher Suite:
+ # List the ciphers that the client is permitted to negotiate.
+ # See the mod_ssl documentation for a complete list.
+ SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
+
+ # Speed-optimized SSL Cipher configuration:
+ # If speed is your main concern (on busy HTTPS servers e.g.),
+ # you might want to force clients to specific, performance
+ # optimized ciphers. In this case, prepend those ciphers
+ # to the SSLCipherSuite list, and enable SSLHonorCipherOrder.
+ # Caveat: by giving precedence to RC4-SHA and AES128-SHA
+ # (as in the example below), most connections will no longer
+ # have perfect forward secrecy - if the server's key is
+ # compromised, captures of past or future traffic must be
+ # considered compromised, too.
+ #SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5
+ #SSLHonorCipherOrder on
+
+ # Server Certificate:
+ # Point SSLCertificateFile at a PEM encoded certificate. If
+ # the certificate is encrypted, then you will be prompted for a
+ # pass phrase. Note that a kill -HUP will prompt again. Keep
+ # in mind that if you have both an RSA and a DSA certificate you
+ # can configure both in parallel (to also allow the use of DSA
+ # ciphers, etc.)
+ SSLCertificateFile "@@SSLCertificateFile@@"
+ #SSLCertificateFile "@@SSLCertificateFile-dsa@@"
+
+ # Server Private Key:
+ # If the key is not combined with the certificate, use this
+ # directive to point at the key file. Keep in mind that if
+ # you've both a RSA and a DSA private key you can configure
+ # both in parallel (to also allow the use of DSA ciphers, etc.)
+ SSLCertificateKeyFile "@@SSLCertificateKeyFile@@"
+ #SSLCertificateKeyFile "@@SSLCertificateKeyFile-dsa@@"
+
+ # Server Certificate Chain:
+ # Point SSLCertificateChainFile at a file containing the
+ # concatenation of PEM encoded CA certificates which form the
+ # certificate chain for the server certificate. Alternatively
+ # the referenced file can be the same as SSLCertificateFile
+ # when the CA certificates are directly appended to the server
+ # certificate for convinience.
+ #SSLCertificateChainFile "@@SSLCertificateChainFile@@"
+
+ # Certificate Authority (CA):
+ # Set the CA certificate verification path where to find CA
+ # certificates for client authentication or alternatively one
+ # huge file containing all of them (file must be PEM encoded)
+ # Note: Inside SSLCACertificatePath you need hash symlinks
+ # to point to the certificate files. Use the provided
+ # Makefile to update the hash symlinks after changes.
+ #SSLCACertificatePath "@@SSLCACertificatePath@@"
+ #SSLCACertificateFile "@@SSLCACertificateFile@@"
+
+ # Certificate Revocation Lists (CRL):
+ # Set the CA revocation path where to find CA CRLs for client
+ # authentication or alternatively one huge file containing all
+ # of them (file must be PEM encoded)
+ # Note: Inside SSLCARevocationPath you need hash symlinks
+ # to point to the certificate files. Use the provided
+ # Makefile to update the hash symlinks after changes.
+ #SSLCARevocationPath "@@SSLCARevocationPath@@"
+ #SSLCARevocationFile "@@SSLCARevocationFile@@"
+
+ # Client Authentication (Type):
+ # Client certificate verification type and depth. Types are
+ # none, optional, require and optional_no_ca. Depth is a
+ # number which specifies how deeply to verify the certificate
+ # issuer chain before deciding the certificate is not valid.
+ #SSLVerifyClient require
+ #SSLVerifyDepth 10
+
+ # Access Control:
+ # With SSLRequire you can do per-directory access control based
+ # on arbitrary complex boolean expressions containing server
+ # variable checks and other lookup directives. The syntax is a
+ # mixture between C and Perl. See the mod_ssl documentation
+ # for more details.
+ #
+ # SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
+ # and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
+ # and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
+ # and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
+ # and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
+ # or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
+ #
+
+ # SSL Engine Options:
+ # Set various options for the SSL engine.
+ # o FakeBasicAuth:
+ # Translate the client X.509 into a Basic Authorisation. This means that
+ # the standard Auth/DBMAuth methods can be used for access control. The
+ # user name is the `one line' version of the client's X.509 certificate.
+ # Note that no password is obtained from the user. Every entry in the user
+ # file needs this password: `xxj31ZMTZzkVA'.
+ # o ExportCertData:
+ # This exports two additional environment variables: SSL_CLIENT_CERT and
+ # SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
+ # server (always existing) and the client (only existing when client
+ # authentication is used). This can be used to import the certificates
+ # into CGI scripts.
+ # o StdEnvVars:
+ # This exports the standard SSL/TLS related `SSL_*' environment variables.
+ # Per default this exportation is switched off for performance reasons,
+ # because the extraction step is an expensive operation and is usually
+ # useless for serving static content. So one usually enables the
+ # exportation for CGI and SSI requests only.
+ # o StrictRequire:
+ # This denies access when "SSLRequireSSL" or "SSLRequire" applied even
+ # under a "Satisfy any" situation, i.e. when it applies access is denied
+ # and no other module can change it.
+ # o OptRenegotiate:
+ # This enables optimized SSL connection renegotiation handling when SSL
+ # directives are used in per-directory context.
+ #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
+
+ SSLOptions +StdEnvVars
+
+
+ SSLOptions +StdEnvVars
+
+
+
+ # SSL Protocol Adjustments:
+ # The safe and default but still SSL/TLS standard compliant shutdown
+ # approach is that mod_ssl sends the close notify alert but doesn't wait for
+ # the close notify alert from client. When you need a different shutdown
+ # approach you can use one of the following variables:
+ # o ssl-unclean-shutdown:
+ # This forces an unclean shutdown when the connection is closed, i.e. no
+ # SSL close notify alert is send or allowed to received. This violates
+ # the SSL/TLS standard but is needed for some brain-dead browsers. Use
+ # this when you receive I/O errors because of the standard approach where
+ # mod_ssl sends the close notify alert.
+ # o ssl-accurate-shutdown:
+ # This forces an accurate shutdown when the connection is closed, i.e. a
+ # SSL close notify alert is send and mod_ssl waits for the close notify
+ # alert of the client. This is 100% SSL/TLS standard compliant, but in
+ # practice often causes hanging connections with brain-dead browsers. Use
+ # this only for browsers where you know that their SSL implementation
+ # works correctly.
+ # Notice: Most problems of broken clients are also related to the HTTP
+ # keep-alive facility, so you usually additionally want to disable
+ # keep-alive for those clients, too. Use variable "nokeepalive" for this.
+ # Similarly, one has to force some clients to use HTTP/1.0 to workaround
+ # their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
+ # "force-response-1.0" for this.
+ BrowserMatch "MSIE [2-5]" \
+ nokeepalive ssl-unclean-shutdown \
+ downgrade-1.0 force-response-1.0
+
+
+
+ # Per-Server Logging:
+ # The home of a custom SSL log file. Use this when you want a
+ # compact non-error SSL logfile on a virtual host basis.
+ CustomLog "@exp_logfiledir@/ssl_request_log" \
+ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
+
+
+
diff --git httpd/docs/conf/sites-available/vhosts.conf.in httpd/docs/conf/sites-available/vhosts.conf.in
new file mode 100644
index 000000000..dfbc515c2
--- /dev/null
+++ httpd/docs/conf/sites-available/vhosts.conf.in
@@ -0,0 +1,47 @@
+#
+# Summary: Use name-based virtual hosting for *:@@Port@@
+# Provides: NameVirtualHost
+#
+
+#
+# Virtual Hosts
+#
+# If you want to maintain multiple domains/hostnames on your
+# machine you can setup VirtualHost containers for them. Most configurations
+# use only name-based virtual hosts so the server doesn't need to worry about
+# IP addresses. This is indicated by the asterisks in the directives below.
+#
+# Please see the documentation at
+#
+# for further details before you try to setup virtual hosts.
+#
+# You may use the command line option '-S' to verify your virtual host
+# configuration.
+
+#
+# Use name-based virtual hosting.
+#
+NameVirtualHost *:@@Port@@
+
+#
+# VirtualHost example:
+# Almost any Apache directive may go into a VirtualHost container.
+# The first VirtualHost section is used for all requests that do not
+# match a ServerName or ServerAlias in any block.
+#
+#
+# ServerAdmin webmaster@dummy-host.example.com
+# DocumentRoot "@vhosts_dir@/dummy-host.example.com"
+# ServerName dummy-host.example.com
+# ServerAlias www.dummy-host.example.com
+# ErrorLog "@rel_logfiledir@/dummy-host.example.com-error_log"
+# CustomLog "@rel_logfiledir@/dummy-host.example.com-access_log common"
+#
+#
+#
+# ServerAdmin webmaster@dummy-host2.example.com
+# DocumentRoot "@vhosts_dir@/dummy-host.example.com"
+# ServerName dummy-host2.example.com
+# ErrorLog "@rel_logfiledir@/dummy-host2.example.com-error_log"
+# CustomLog "@rel_logfiledir@/dummy-host2.example.com-access_log common"
+#
diff --git httpd/docs/man/a2chkconfig.8 httpd/docs/man/a2chkconfig.8
new file mode 100644
index 000000000..bcda395bb
--- /dev/null
+++ httpd/docs/man/a2chkconfig.8
@@ -0,0 +1,39 @@
+.TH "A2CHKCONFIG" 8 "2007-04-06" "Apache HTTP Server" "a2chkconfig"
+
+.SH NAME
+.B a2chkconfig
+is an utility for apache2 autostart modification.
+
+.SH "SYNOPSIS"
+.PP
+.B a2chkconfig
+
+.SH "SUMMARY"
+.B a2chkconfig
+reads configuration files from conf/*-start.d/* and creates or removes symbolic links in corresponding /etc/httpd2/conf/*-enabled.
+
+Syntax of configuration files in directories conf/*-start.d:
+
+NAME={yes,no}
+
+where NAME is a filename in corresponding conf/*-available.
+
+.SH "EXAMPLE"
+If you want to disable mod_alias you have to edit file /etc/httpd2/conf/mods-start.d/000-default.conf and change parameter alias to "no". You can see that symbolic link "alias.load" removed from directory /etc/httpd2/conf/mods-enabled.d
+
+.SH "BUGS"
+Configuration files in conf/*-start.d/* must have new line at the end of file.
+
+.SH "AUTHOR"
+Written by Andrew Avramenko with help of Aleksey Avdeev.
+
+.SH "COPYRIGHT"
+Copyright \(co 2007. ALT Linux TEAM.
+.br
+
+.br
+This is free software. You may redistribute copies of it under the terms of the GNU General Public License
+. There is NO WARRANTY, to the extent permitted by law.
+
+.SH "SEE ALSO"
+.B a2enmod(8) a2dismod(8) a2enextra(8) a2disextra(8) a2ensite(8) a2dissite(8) apachectl(8)
diff --git httpd/docs/man/a2dismod.8 httpd/docs/man/a2dismod.8
new file mode 100644
index 000000000..302eac1b8
--- /dev/null
+++ httpd/docs/man/a2dismod.8
@@ -0,0 +1 @@
+.so man8/a2enmod.8
diff --git httpd/docs/man/a2enmod.8 httpd/docs/man/a2enmod.8
new file mode 100644
index 000000000..1649a55ca
--- /dev/null
+++ httpd/docs/man/a2enmod.8
@@ -0,0 +1,73 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH A2ENMOD 8 "12 October 2006"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+a2enmod, a2dismod \- enable or disable an apache2 module
+.SH SYNOPSIS
+.B a2enmod
+.RI [ module ]
+.PP
+.B a2dismod
+.RI [ module ]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B a2enmod
+and
+.B a2dismod
+commands.
+.PP
+.B a2enmod
+is a script that enables the specified module within the
+.B apache2
+configuration. It does this by creating symlinks within
+.BR /etc/apache2/mods-enabled .
+Likewise,
+.B a2dismod
+disables a module by removing those symlinks. It is not an error to
+enable a module which is already enabled, or to disable one which is
+already disabled.
+.SH NOTE
+.B a2enmod
+also enables the module in the conf/mods-start.d/* files to prevent the module explicitly enabled from being disabled after update.
+.B a2dismod
+disables module in conf/mods-start.d/* for the same reason.
+.SH EXAMPLES
+.RS
+.B "a2enmod imagemap"
+.br
+.B "a2dismod mime_magic"
+.RE
+.PP
+Enables the
+.B mod_imagemap
+module, and disables the
+.B mod_mime_magic
+module.
+.SH FILES
+.TP
+.B /etc/apache2/mods-available
+Directory with files giving information on available modules.
+.TP
+.B /etc/apache2/mods-enabled
+Directory with links to the files in
+.B mods-available
+for enabled modules.
+.SH "SEE ALSO"
+.BR apache2ctl (8).
+.SH AUTHOR
+This manual page was written by Daniel Stone for the Debian
+GNU/Linux distribution, as it is a Debian-specific script with the package.
diff --git httpd/docs/man/check_forensic.8 httpd/docs/man/check_forensic.8
new file mode 100644
index 000000000..afb8fcd62
--- /dev/null
+++ httpd/docs/man/check_forensic.8
@@ -0,0 +1,15 @@
+.TH check_forensic 8
+.SH NAME
+check_forensic \- tool to extract mod_log_forensic output from apache log files
+.SH SYNOPSIS
+.B check_forensic
+
+.SH "DESCRIPTION"
+chech_forensic is a simple shell script designed to help apache administrators
+to extract mod_log_forensic output from apache, apache-ssl and apache-perl
+log files.
+.PP
+.SH AUTHOR
+This manual page was written by Fabio M. Di Nitto
+, for the Debian GNU/Linux system
+(but may be used by others).
diff --git httpd/docs/man/checkgid.8 httpd/docs/man/checkgid.8
new file mode 100644
index 000000000..6dfab9c2c
--- /dev/null
+++ httpd/docs/man/checkgid.8
@@ -0,0 +1,36 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH CHECKGID 8 "November 3rd, 2001"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+checkgid \- checks the gid
+.SH SYNOPSIS
+.B checkgid group
+.SH DESCRIPTION
+This manual page documents briefly the
+.B checkgid
+command.
+.PP
+.\" TeX users may be more comfortable with the \fB\fP and
+.\" \fI\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBcheckgid\fP is a program that checks whether it can setgid to the group
+specified. This is to see if it is a valid group for apache2 to use at runtime.
+If the user (should be run as superuser) is in that group, or can setgid to it,
+it will return 0.
+.SH AUTHOR
+This manual page was written by Daniel Stone for the Debian
+GNU/Linux distribution, as the original did not have a manpage.
diff --git httpd/support/a2chkconfig.in httpd/support/a2chkconfig.in
new file mode 100644
index 000000000..32dd4034c
--- /dev/null
+++ httpd/support/a2chkconfig.in
@@ -0,0 +1,55 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+SBINDIR='@sbindir@'
+
+GetNameUtil()
+{
+ local d="$1"
+ local f="$2"
+ local com suf
+ case "x$f" in
+ x[yY][eE][sS])
+ com="en"
+ ;;
+ x[nN][oO])
+ com="dis"
+ ;;
+ *)
+ return -1
+ ;;
+ esac
+ case "x$d" in
+ xmods)
+ suf="mod"
+ ;;
+ xports)
+ suf="port"
+ ;;
+ xsites)
+ suf="site"
+ ;;
+ xextra)
+ suf="extra"
+ ;;
+ *)
+ return -1
+ ;;
+ esac
+ printf 'a2%s%s' $com $suf
+}
+
+
+SetLinks()
+{
+ local d n f com
+ $SBINDIR/a2chkconfig_list | \
+ while read d n f; do
+ com=`GetNameUtil $d $f`
+ $SBINDIR/$com $n ||:
+ done
+}
+
+SetLinks
+
+find -L $SYSCONFDIR/*-enabled -maxdepth 1 -type l -delete
diff --git httpd/support/a2chkconfig_list.in httpd/support/a2chkconfig_list.in
new file mode 100644
index 000000000..3b7e86de4
--- /dev/null
+++ httpd/support/a2chkconfig_list.in
@@ -0,0 +1,94 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+
+SetVar()
+{
+ local s n f vn p
+ p="$1"
+ shift
+ s="$@"
+ s=`echo "$s" | \
+ sed -ne '/^[[:space:]]*[0-9a-zA-Z._-]\{1,\}\(=\|[[:space:]]\{1,\}\)\([Yy][Ee][Ss]\|[Nn][Oo]\)\([[:space:]].*\|\)$/s/^[[:space:]]*\([0-9a-zA-Z._-]\{1,\}\)\(=\|[[:space:]]\{1,\}\)\([Yy][Ee][Ss]\|[Nn][Oo]\)\([[:space:]].*\|\)$/\1 \3/p'`
+ if [ "x$s" == "x" ]; then
+ continue
+ fi
+ f=`echo $s | cut -d" " -f2`
+ n=`echo $s | cut -d" " -f1`
+ vn=`echo "$n" | sed -e 's/[-.]/_/g'`
+ eval ${p}_FILE_$vn=$n
+ eval ${p}_$vn=$f
+}
+
+SetVars()
+{
+ local c s d p
+ d="$1"
+ p="$2"
+ for c in $SYSCONFDIR/$d-start.d/*.conf; do
+ if [ ! -f "$c" ]; then
+ break
+ fi
+ while read s; do
+ SetVar "$p" "$s"
+ done < "$c"
+ SetVar "$p" "$s"
+ done
+}
+
+PrintConf()
+{
+ local c s n f vn d p e
+ d="$1"
+ p="$2"
+ r="$3"
+ for vn in `ls -1 --quoting-style=shell $SYSCONFDIR/$d-available/*.$r 2>/dev/null | \
+ sed -e "s,$SYSCONFDIR/$d-available/\(.*\).$r,\1,g" -e "s/[-.]/_/g"`; do
+ local pvn pfvn rez
+ pvn=${p}_$vn
+ pfvn=${p}_FILE_$vn
+ eval f=\$$pvn
+ eval n=\$$pfvn
+ case "x$f" in
+ x[yY][eE][sS])
+ rez="yes"
+ ;;
+ x[nN][oO])
+ rez="no"
+ ;;
+ *)
+ continue
+ ;;
+ esac
+ echo "$d $n $rez"
+ done
+}
+
+case "x$1" in
+ xmods)
+ SetVars mods MOD
+ PrintConf mods MOD load
+ ;;
+ xports)
+ SetVars ports PORT
+ PrintConf ports PORT conf
+ ;;
+ xsites)
+ SetVars sites SITE
+ PrintConf sites SITE conf
+ ;;
+ xextra)
+ SetVars extra EXTRA
+ PrintConf extra EXTRA conf
+ ;;
+ *)
+ SetVars ports PORT
+ PrintConf ports PORT conf
+ SetVars extra EXTRA
+ PrintConf extra EXTRA conf
+ SetVars sites SITE
+ PrintConf sites SITE conf
+ SetVars mods MOD
+ PrintConf mods MOD load
+ ;;
+esac
diff --git httpd/support/a2disextra.in httpd/support/a2disextra.in
new file mode 100644
index 000000000..123732caf
--- /dev/null
+++ httpd/support/a2disextra.in
@@ -0,0 +1,23 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+
+if [ -z "$1" ]; then
+ echo "Which extra config would you like to disable?"
+ echo -n "Your choices are: "
+ ls $SYSCONFDIR/extra-enabled/*.conf | \
+ sed -e "s,$SYSCONFDIR/extra-enabled/\(.*\).conf,\1,g" | xargs echo
+ echo -n "Extra config name? "
+ read CONFNAME
+else
+ CONFNAME=$1
+fi
+
+if ! [ -e "$SYSCONFDIR/extra-enabled/$CONFNAME.conf" ]; then
+ echo "Extra config $CONFNAME.conf is already disabled, or does not exist!"
+ exit 1
+fi
+
+rm "$SYSCONFDIR/extra-enabled/$CONFNAME.conf" 2>/dev/null
+echo "Extra config $CONFNAME disabled;"
+echo " run service httpd2 condreload to fully disable."
diff --git httpd/support/a2dismod.in httpd/support/a2dismod.in
new file mode 100644
index 000000000..506384f49
--- /dev/null
+++ httpd/support/a2dismod.in
@@ -0,0 +1,41 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+
+if [ -z "$1" ]; then
+ echo "Which module would you like to disable?"
+ echo -n "Your choices are: "
+ ls $SYSCONFDIR/mods-enabled/*.load | \
+ sed -e "s,$SYSCONFDIR/mods-enabled/,,g" | sed -e 's/\.load$//g;' | xargs echo
+ echo -n "Module name? "
+ read MODNAME
+else
+ MODNAME=$1
+fi
+
+DEPENDS=`grep -l "# Depends:.*$MODNAME" $SYSCONFDIR/mods-enabled/*.load| sed -e "s,$SYSCONFDIR/mods-enabled/,,g" | sed -e 's/\.load$//g;'`
+#for i in $DEPENDS; do
+# a2dismod ${i%.load};
+#done
+if [ ! -z "$DEPENDS" ]; then
+ echo "The following modules depend on the module you requested be uninstalled:"
+ echo "$DEPENDS"
+ echo "Please uninstall these first"
+ exit 1
+fi
+
+if ! [ -L "$SYSCONFDIR/mods-enabled/$MODNAME.load" ]; then
+ if [ -e "$SYSCONFDIR/mods-available/$MODNAME.load" ]; then
+ rm -f $SYSCONFDIR/mods-enabled/$MODNAME.*
+ echo "Module $MODNAME already disabled"
+ exit 0
+ fi
+ rm -f $SYSCONFDIR/mods-enabled/$MODNAME.*
+ echo "Module $MODNAME does not exist!"
+ exit 1
+fi
+
+rm -f $SYSCONFDIR/mods-enabled/$MODNAME.*
+sed -i -e "s/^$MODNAME=yes/$MODNAME=no/" $SYSCONFDIR/mods-start.d/*.conf
+echo "Module $MODNAME disabled;"
+echo " run service httpd2 condreload to fully disable."
diff --git httpd/support/a2disport.in httpd/support/a2disport.in
new file mode 100644
index 000000000..599277b63
--- /dev/null
+++ httpd/support/a2disport.in
@@ -0,0 +1,23 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+
+if [ -z "$1" ]; then
+ echo "Which port config would you like to disable?"
+ echo -n "Your choices are: "
+ ls $SYSCONFDIR/ports-enabled/*.conf | \
+ sed -e "s,$SYSCONFDIR/ports-enabled/\(.*\).conf,\1,g" | xargs echo
+ echo -n "Port config name? "
+ read CONFNAME
+else
+ CONFNAME=$1
+fi
+
+if ! [ -e "$SYSCONFDIR/ports-enabled/$CONFNAME.conf" ]; then
+ echo "Port config $CONFNAME.conf is already disabled, or does not exist!"
+ exit 1
+fi
+
+rm "$SYSCONFDIR/ports-enabled/$CONFNAME.conf" 2>/dev/null
+echo "Port config $CONFNAME disabled;"
+echo " run service httpd2 condreload to fully disable."
diff --git httpd/support/a2dissite.in httpd/support/a2dissite.in
new file mode 100644
index 000000000..c5a8fc1c7
--- /dev/null
+++ httpd/support/a2dissite.in
@@ -0,0 +1,30 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+
+if [ -z "$1" ]; then
+ echo "Which site would you like to disable?"
+ echo -n "Your choices are: "
+ ls $SYSCONFDIR/sites-enabled/*.conf | \
+ sed -e "s,$SYSCONFDIR/sites-enabled/\(.*\).conf,\1,g" | xargs echo
+ echo -n "Site name? "
+ read SITENAME
+else
+ SITENAME=$1
+fi
+
+if [ ${SITENAME:0:7} = "default" ]; then
+ PRIORITY="000"
+fi
+
+if ! [ -e "$SYSCONFDIR/sites-enabled/$SITENAME.conf" -o \
+ -e "$SYSCONFDIR/sites-enabled/$PRIORITY-$SITENAME.conf" ]; then
+ echo "Site config $CONFNAME.conf is already disabled, or does not exist!"
+ exit 1
+fi
+
+if ! rm "$SYSCONFDIR/sites-enabled/$SITENAME.conf" 2>/dev/null; then
+ rm -f "$SYSCONFDIR/sites-enabled/$PRIORITY-$SITENAME.conf"
+fi
+echo "Site $SITENAME disabled;"
+echo " run service httpd2 condreload to fully disable."
diff --git httpd/support/a2enextra.in httpd/support/a2enextra.in
new file mode 100644
index 000000000..9211d5e1b
--- /dev/null
+++ httpd/support/a2enextra.in
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+
+if [ -z "$1" ]; then
+ echo "Which extra config would you like to enable?"
+ echo -n "Your choices are: "
+ ls $SYSCONFDIR/extra-available/*.conf | \
+ sed -e "s,$SYSCONFDIR/extra-available/\(.*\).conf,\1,g" | xargs echo
+ echo -n "Extra config name? "
+ read CONFNAME
+else
+ CONFNAME=$1
+fi
+
+if [ -e "$SYSCONFDIR/extra-enabled/$CONFNAME.conf" -o \
+ -e "$SYSCONFDIR/extra-enabled/$PRIORITY-$CONFNAME.conf" ]; then
+ echo "Extra config $CONFNAME.conf is already enabled!"
+ exit 0
+fi
+
+if ! [ -e "$SYSCONFDIR/extra-available/$CONFNAME.conf" ]; then
+ echo "Extra config $CONFNAME.conf does not exist!"
+ exit 1
+fi
+
+ln -sf ../extra-available/$CONFNAME.conf \
+ "$SYSCONFDIR/extra-enabled/$CONFNAME.conf"
+
+echo "Extra config $CONFNAME installed;"
+echo " run service httpd2 condreload to fully enable."
diff --git httpd/support/a2enmod.in httpd/support/a2enmod.in
new file mode 100644
index 000000000..efc353416
--- /dev/null
+++ httpd/support/a2enmod.in
@@ -0,0 +1,45 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+
+if [ -z "$1" ]; then
+ echo "Which module would you like to enable?"
+ echo -n "Your choices are: "
+ ls $SYSCONFDIR/mods-available/*.load | \
+ sed -e "s,$SYSCONFDIR/mods-available/,,g" | sed -e 's/\.load$//g;' | xargs echo
+ echo -n "Module name? "
+ read MODNAME
+else
+ MODNAME=$1
+fi
+
+if ! [ -e "$SYSCONFDIR/mods-available/$MODNAME.load" ]; then
+ echo "File $MODNAME.load does not exist!"
+ exit 1
+fi
+
+# Set depends
+DEPENDS=`grep "# Depends:" $SYSCONFDIR/mods-available/$MODNAME.load|cut -f2 -d:`
+if [ ! -z "$DEPENDS" ]; then
+ for i in $DEPENDS; do
+ echo "Enabling $i as a dependency"
+ /usr/sbin/a2enmod "$i";
+ done
+fi
+
+# Set this module
+if [ -e "$SYSCONFDIR/mods-enabled/$MODNAME.load" ]; then
+ echo "Module $MODNAME is already enabled!"
+else
+ cd "$SYSCONFDIR/mods-enabled";
+ ln -sf ../mods-available/$MODNAME.load "$MODNAME.load";
+fi
+
+if [ -e "$SYSCONFDIR/mods-available/$MODNAME.conf" -a ! -e "$SYSCONFDIR/mods-enabled/$MODNAME.conf" ]; then
+ cd "$SYSCONFDIR/mods-enabled";
+ ln -sf ../mods-available/$MODNAME.conf "$MODNAME.conf";
+fi
+
+sed -i -e "s/^$MODNAME=no/$MODNAME=yes/" $SYSCONFDIR/mods-start.d/*.conf
+echo "Module $MODNAME installed;"
+echo " run service httpd2 condreload to fully enable."
diff --git httpd/support/a2enport.in httpd/support/a2enport.in
new file mode 100644
index 000000000..2d502eb66
--- /dev/null
+++ httpd/support/a2enport.in
@@ -0,0 +1,30 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+
+if [ -z "$1" ]; then
+ echo "Which port config would you like to enable?"
+ echo -n "Your choices are: "
+ ls $SYSCONFDIR/ports-available/*.conf | \
+ sed -e "s,$SYSCONFDIR/ports-available/\(.*\).conf,\1,g" | xargs echo
+ echo -n "Port config name? "
+ read CONFNAME
+else
+ CONFNAME=$1
+fi
+
+if [ -e "$SYSCONFDIR/ports-enabled/$CONFNAME.conf" ]; then
+ echo "Port config $CONFNAME.conf is already enabled!"
+ exit 0
+fi
+
+if ! [ -e "$SYSCONFDIR/ports-available/$CONFNAME.conf" ]; then
+ echo "Port config $CONFNAME.conf does not exist!"
+ exit 1
+fi
+
+ln -sf ../ports-available/$CONFNAME.conf \
+ $SYSCONFDIR/ports-enabled/$CONFNAME.conf
+
+echo "Port config $CONFNAME installed;"
+echo " run service httpd2 condreload to fully enable."
diff --git httpd/support/a2ensite.in httpd/support/a2ensite.in
new file mode 100644
index 000000000..6986042b3
--- /dev/null
+++ httpd/support/a2ensite.in
@@ -0,0 +1,40 @@
+#!/bin/sh -e
+
+SYSCONFDIR='@exp_sysconfdir@'
+
+if [ -z "$1" ]; then
+ echo "Which site would you like to enable?"
+ echo -n "Your choices are: "
+ ls $SYSCONFDIR/sites-available/*.conf | \
+ sed -e "s,$SYSCONFDIR/sites-available/\(.*\).conf,\1,g" | xargs echo
+ echo -n "Site name? "
+ read SITENAME
+else
+ SITENAME="$1"
+fi
+
+if [ "${SITENAME:0:7}" = "default" ]; then
+ PRIORITY="000"
+fi
+
+if [ -e "$SYSCONFDIR/sites-enabled/$SITENAME.conf" -o \
+ -e "$SYSCONFDIR/sites-enabled/$PRIORITY-$SITENAME.conf" ]; then
+ echo "Site config $CONFNAME.confThis site is already enabled!"
+ exit 0
+fi
+
+if ! [ -e "$SYSCONFDIR/sites-available/$SITENAME.conf" ]; then
+ echo "Site config $CONFNAME.conf does not exist!"
+ exit 1
+fi
+
+if [ "$PRIORITY" = "000" ]; then
+ ln -sf ../sites-available/$SITENAME.conf \
+ "$SYSCONFDIR/sites-enabled/$PRIORITY-$SITENAME.conf"
+else
+ ln -sf ../sites-available/$SITENAME.conf \
+ "$SYSCONFDIR/sites-enabled/$SITENAME.conf"
+fi
+
+echo "Site $SITENAME installed;"
+echo " run service httpd2 condreload to fully enable."
diff --git httpd/support/check_forensic.in httpd/support/check_forensic.in
new file mode 100644
index 000000000..3c8123fcb
--- /dev/null
+++ httpd/support/check_forensic.in
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# check_forensic
+
+# check the forensic log for requests that did not complete
+# output the request log for each one
+
+F=$1
+
+temp_create_method=file
+if test -f `which mktemp`; then
+ temp_create_method=mktemp
+elif test -f `which tempfile`; then
+ temp_create_method=tempfile
+fi
+
+create_temp()
+{
+ prefix=$1
+ case "$temp_create_method" in
+ file)
+ name="/tmp/$1.$$"
+ ;;
+ mktemp)
+ name=`mktemp -t $1.XXXXXX`
+ ;;
+ tempfile)
+ name=`tempfile --prefix=$1`
+ ;;
+ *)
+ echo "$0: Cannot create temporary file"
+ exit 1
+ ;;
+ esac
+}
+
+create_temp fcall
+all=$name
+create_temp fcin
+in=$name
+create_temp fcout
+out=$name
+trap "rm -f -- \"$all\" \"$in\" \"$out\";" 0 1 2 3 13 15
+
+cut -f 1 -d '|' $F > $all
+grep + < $all | cut -c2- | sort > $in
+grep -- - < $all | cut -c2- | sort > $out
+
+# use -i instead of -I for GNU xargs
+join -v 1 $in $out | xargs -I xx egrep "^\\+xx" $F
+exit 0
diff --git httpd/support/modhandler.py.in httpd/support/modhandler.py.in
new file mode 100644
index 000000000..5bbd8f86a
--- /dev/null
+++ httpd/support/modhandler.py.in
@@ -0,0 +1,190 @@
+#!/usr/bin/env python
+# Copyright (C) Thom May 2002
+#All rights reserved.
+
+#Redistribution and use in source and binary forms, with or without
+#modification, are permitted provided that the following conditions
+#are met:
+#1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+
+#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+#OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+#IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+#NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+#THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#TODO: add --force option
+
+import shelve, textwrap
+
+__all__ = ["ModHandler", "ModHandlerException", "ModuleAlreadyExists", "NoSuchModule"]
+
+class ModHandlerException(Exception):
+ pass
+
+class ModuleAlreadyExists(ModHandlerException):
+ def __init__(self, name):
+ self.args = name
+ self.name = name
+
+class NoSuchModule(ModHandlerException):
+ def __init__(self, name):
+ self.args = name
+ self.name = name
+
+class ModHandler:
+ def __init__(self, db):
+ self.registry = shelve.open(db,"c",writeback=True)
+ self.revision = "$LastChangedRevision: 19 $"
+
+ def add(self,module,sequence=99,*dependencies):
+ """add(module[, sequence, *dependencies])
+
+ Add a module into the registry ready for enabling.
+ module is the name of the module
+ sequence is the sequence number of the module. The default is 99
+ any further arguments define dependencies for the module"""
+
+ if __debug__: print "The module is", module, "and the sequence number is",sequence,"\n"
+ state = "disabled"
+ #now we create a tuple
+ # name, sequence, state, [dependencies]
+ if len(dependencies) > 0:
+ entry = module, sequence, state, 0, dependencies
+ else:
+ entry = module, sequence, state, 0
+
+ if self.registry.has_key(module):
+ raise ModuleAlreadyExists(module)
+
+ self.registry[module] = entry
+ return 0
+
+ def dolist(self):
+ """dolist (no arguments)
+ lists all the current elements in the database."""
+
+ for key in self.registry.keys():
+ print textwrap.fill("The name of the key is %s and the data in the key is: %s" % (key , self.registry[key][:3]))
+ if len(self.registry[key]) > 4:
+ print textwrap.fill("The dependencies for %s are: %s\n" % (key , self.registry[key][4]))
+ if self.registry[key][3] > 0:
+ print textwrap.fill("%s is in use %s times\n" % (key, self.registry[key][3]))
+ print
+
+ def remove(self,module):
+ if __debug__: print "Plotting to remove",module,"\n"
+ try:
+ self.disable(module)
+ del self.registry[module]
+ if __debug__: print "Removed",module
+ except KeyError:
+ raise NoSuchModule(module)
+ return 0
+
+ def enable(self,module,isdependency=False,*dependseq):
+ """enable(module,[dependseq])
+
+ enable takes one or two arguments. in normal opperation, just the module
+ name is passed. When being run recursively to fix dependencies, the
+ dependency sequence of the depending module is also passed"""
+
+ try:
+ data = self.registry[module]
+ except KeyError:
+ raise NoSuchModule(module)
+
+ #now, we check to see if our sequence number is higher than the module that's depending on us
+ #if so, we bump our sequence number down to one less than the depending module
+ changedseqnum = True
+ seqnum = data[1]
+ if __debug__: print module+": seqnum "+str(seqnum)
+ if len(dependseq) > 0:
+ if __debug__: print module+": dependseq "+str(dependseq[0])
+ if int(seqnum) > int(dependseq[0]):
+ oldseqnum = seqnum
+ seqnum = int(dependseq[0])
+ seqnum = seqnum - 1
+ if __debug__:
+ print module +": punting old seqnum:",str(oldseqnum)," to new seqnum:",str(seqnum)
+ print "new seqnum:",str(seqnum)
+ #changedseqnum = True
+ else:
+ changedseqnum = False
+
+ #next, we need to load any dependencies.
+ #this is complicated by the need to get the sequence right.
+ if len(data) > 4:
+ dependencies = data[4]
+ if __debug__: print dependencies
+ for dependency in dependencies:
+ if __debug__: print dependency
+ returncode = self.enable(dependency,True,seqnum)
+ if __debug__: print returncode
+
+ #now, we check whether the module is loaded already
+ if data[2] == "enabled" and changedseqnum == False:
+ #nothing more to do.
+ return
+ else:
+ self.switchon(module,seqnum)
+
+ refcount = data[3]
+ if isdependency:
+ refcount += 1
+
+ #ok, nothing has broken. Only now do we update the module's status.
+ #it would be nice to provide some semblance of atomicity to the
+ #operation
+ if len(data) < 5:
+ newstatus = module, seqnum, "enabled", refcount
+ else:
+ newstatus = module, seqnum, "enabled", refcount, dependencies
+
+ self.registry[module] = newstatus
+
+ def disable(self,module):
+ """disable(module) marks a module as disabled"""
+
+ #this might require some form of refcounting so we can work out if any
+ #unneeded dependencies can be unloaded as well, for example with mod_dav
+ #and its providers, such as dav_fs or dav_svn - but not till the basic
+ #functionality works ;-)
+
+
+ try:
+ data = self.registry[module]
+ except KeyError:
+ raise NoSuchModule(module)
+ if data[2] == "disabled":
+ return
+
+ if __debug__: print "shutting",module,"down\n"
+
+ #try:
+ self.switchoff(module,data[1])
+
+ if len(data) < 4:
+ newstatus = module, data[1], "disabled"
+ else:
+ newstatus = module, data[1], "disabled", data[3]
+
+ self.registry[module] = newstatus
+
+ def version(self, versionnum):
+
+ print "The version of the client is",versionnum
+ print "The revision number of ModHandler is %s" % self.revision.strip('$').split(':')[1].strip()
+
+ def switchon(self,module,seqnum): pass
+
+ def switchoff(self,module): pass
diff --git httpd/support/update-apache2-modules.in httpd/support/update-apache2-modules.in
new file mode 100644
index 000000000..6021e38d7
--- /dev/null
+++ httpd/support/update-apache2-modules.in
@@ -0,0 +1,154 @@
+#!/usr/bin/env python
+# Copyright (C) Thom May 2002
+#All rights reserved.
+
+#Redistribution and use in source and binary forms, with or without
+#modification, are permitted provided that the following conditions
+#are met:
+#1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+
+#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+#OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+#IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+#NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+#THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import getopt, sys, os
+from modhandler import *
+
+versionnum = 0.8
+class A2ModHandler(ModHandler):
+ def switchon(self,module,seqnum):
+ if __debug__: print "switching on %s%s" % (seqnum,module)
+ availloadstring = "@rel_sysconfdir@/mods-available/"+module+".load"
+ enableloadstring = "@rel_sysconfdir@/mods-enabled/"+str(seqnum)+module+".load"
+ availconfstring = "@rel_sysconfdir@/mods-available/"+module+".conf"
+ enableconfstring = "@rel_sysconfdir@/mods-enabled/"+str(seqnum)+module+".conf"
+ if os.path.exists(availloadstring) and not os.path.exists(enableloadstring):
+ os.symlink(availloadstring,enableloadstring)
+ else:
+ return
+
+ if os.path.exists(availconfstring) and not os.path.exists(enableconfstring):
+ os.symlink(availconfstring,enableconfstring)
+ else:
+ return
+
+
+ def switchoff(self,module,seqnum):
+ if __debug__: print "switching %s off" % (module,)
+
+ enableloadstring = "@rel_sysconfdir@/mods-enabled/"+str(seqnum)+module+".load"
+ enableconfstring = "@rel_sysconfdir@/mods-enabled/"+str(seqnum)+module+".conf"
+
+ if os.path.exists(enableloadstring):
+ os.unlink(enableloadstring)
+ else:
+ return
+
+ if os.path.exists(enableconfstring):
+ os.unlink(enableconfstring)
+ else:
+ return
+
+
+def main():
+ if len(sys.argv) == 1:
+ usage()
+ sys.exit(2)
+
+ mh = A2ModHandler("/var/lib/apache2/modules")
+
+ name = os.path.split(sys.argv[0])[1]
+ if name == 'a2enmod':
+ mh.enable(sys.argv[1])
+ if name == 'a2dismod':
+ mh.disable(sys.argv[1])
+
+ try:
+ opts, args = getopt.getopt(sys.argv[1:],"hlv" ,["add","disable","enable","help","list","remove","version","force"])
+ except getopt.GetoptError:
+ usage()
+ sys.exit(2)
+
+ for o,a in opts:
+ if o in ("-h", "--help"):
+ usage()
+ sys.exit()
+ if o in ("-v", "--version"):
+ mh.version(versionnum)
+ sys.exit()
+ if o == "--add":
+ try:
+ mh.add(*args)
+ except ModuleAlreadyExists:
+ print "Module has already been registered"
+ sys.exit(1)
+ except (IndexError, TypeError):
+ usage()
+ sys.exit(2)
+ if o == "--remove":
+ try:
+ mh.remove(args[0])
+ except NoSuchModule:
+ print "No such module"
+ sys.exit(1)
+ except IndexError:
+ usage()
+ sys.exit(2)
+ if o == "--enable":
+ try:
+ mh.enable(args[0])
+ except NoSuchModule:
+ print "No Such Module"
+ sys.exit(1)
+ except IndexError:
+ usage()
+ sys.exit(2)
+ if o == "--disable":
+ try:
+ mh.disable(args[0])
+ except NoSuchModule:
+ print "No Such Module"
+ sys.exit(1)
+ except IndexError:
+ usage()
+ sys.exit(2)
+ if o in ("-l","--list"):
+ mh.dolist()
+
+def usage():
+ """Print the usage statement
+
+ Prints the correct list of arguments, and then exits.
+ """
+ print "Debian update-apache2-modules", versionnum
+ print "Copyright (C) 2002 Thom May, under the BSD license."
+ msg = """
+
+usage: update-apache2-modules --add [ ]
+ update-apache2-modules --remove
+ update-apache2-modules --enable
+ update-apache2-modules --disable
+ update-apache2-modules --list
+
+ is the name of the module
+ is used to decide the order the modules are loaded in.
+ The default if no sequence number is specified is 99
+ signifies any dependencies the module might have
+"""
+ sys.stderr.write(msg)
+ return(0)
+
+
+if __name__ == '__main__':
+ main()