7045614 Move Apache Web server to userland
authorPetr Sumbera <petr.sumbera@oracle.com>
Thu, 02 Jun 2011 00:54:08 -0700
changeset 278 77b380ba9d84
parent 277 12ebd29ad46c
child 279 c6af843791cd
7045614 Move Apache Web server to userland 6844584 mod_perl packaging improvements
components/apache2-modules/mod_dtrace/Makefile
components/apache2-modules/mod_dtrace/apache-dtrace.p5m
components/apache2-modules/mod_dtrace/apache.license
components/apache2-modules/mod_dtrace/dtrace.conf
components/apache2-modules/mod_dtrace/src/Makefile
components/apache2-modules/mod_dtrace/src/apache.d
components/apache2-modules/mod_dtrace/src/mapfile
components/apache2-modules/mod_dtrace/src/mod_dtrace.c
components/apache2-modules/mod_fcgid/Makefile
components/apache2-modules/mod_fcgid/apache-fcgid.p5m
components/apache2-modules/mod_fcgid/apache.license
components/apache2-modules/mod_fcgid/fcgid.conf
components/apache2-modules/mod_fcgid/patches/fcgid.badspawnctl-r1037727.patch
components/apache2-modules/mod_fcgid/patches/fcgid.configure.apxs.patch
components/apache2-modules/mod_jk/Makefile
components/apache2-modules/mod_jk/apache-jk.p5m
components/apache2-modules/mod_jk/apache.license
components/apache2-modules/mod_jk/jk.conf
components/apache2-modules/mod_jk/workers.properties
components/apache2-modules/mod_perl/Makefile
components/apache2-modules/mod_perl/apache-perl.p5m
components/apache2-modules/mod_perl/patches/CVE-2009-0796.patch
components/apache2-modules/mod_perl/patches/Reload.patch
components/apache2-modules/mod_perl/patches/TestConfigParse.patch
components/apache2-modules/mod_perl/patches/bug38084.patch
components/apache2-modules/mod_perl/perl.conf
components/apache2-modules/mod_proxy_html/Makefile
components/apache2-modules/mod_proxy_html/apache-proxy_html.license
components/apache2-modules/mod_proxy_html/apache-proxy_html.p5m
components/apache2-modules/mod_proxy_html/apache-xml2enc.license
components/apache2-modules/mod_proxy_html/apache-xml2enc.p5m
components/apache2-modules/mod_proxy_html/patches/conf.patch
components/apache2-modules/mod_proxy_html/patches/makefile.patch
components/apache2-modules/mod_security2/Makefile
components/apache2-modules/mod_security2/apache-security.p5m
components/apache2-modules/mod_security2/patches/configure.in.patch
components/apache2-modules/mod_security2/security2.conf
components/apache2-modules/mod_security2/security2.license
components/apache2/Makefile
components/apache2/Solaris/apache2.1m.sunman
components/apache2/Solaris/customization.sh
components/apache2/Solaris/disabled-module.list
components/apache2/Solaris/favicon.gif
components/apache2/Solaris/favicon.ico
components/apache2/Solaris/http-apache22
components/apache2/Solaris/http-apache22.xml
components/apache2/Solaris/loadmodules.sed
components/apache2/Solaris/modules-32.load
components/apache2/Solaris/modules-64.load
components/apache2/Solaris/sample-module.tmpl
components/apache2/apache-22.p5m
components/apache2/apache-sed.p5m
components/apache2/documentation.p5m
components/apache2/mod_auth_gss/README
components/apache2/mod_auth_gss/mod_auth_gss.c
components/apache2/mod_auth_gss/mod_auth_gss.html
components/apache2/mod_sed/libsed.h
components/apache2/mod_sed/mod_sed.c
components/apache2/mod_sed/regexp.c
components/apache2/mod_sed/regexp.h
components/apache2/mod_sed/sed.h
components/apache2/mod_sed/sed0.c
components/apache2/mod_sed/sed1.c
components/apache2/patches/Makefile.in.patch
components/apache2/patches/apachectl.patch
components/apache2/patches/apr_common.m4.patch
components/apache2/patches/config.layout.patch
components/apache2/patches/dav.conf.in.patch
components/apache2/patches/extra-modules.patch
components/apache2/patches/httpd.conf.patch
components/apache2/patches/info.conf.in.patch
components/apache2/patches/ssl.conf.patch
components/apr-util/Makefile
components/apr/Makefile
components/meta-packages/history/SUNWapch22.p5m
components/meta-packages/history/SUNWapch22d.p5m
components/meta-packages/history/SUNWapch22m-dtrace.p5m
components/meta-packages/history/SUNWapch22m-fcgid.p5m
components/meta-packages/history/SUNWapch22m-jk.p5m
components/meta-packages/history/SUNWapch22m-proxy-html.p5m
components/meta-packages/history/SUNWapch22m-security.p5m
components/meta-packages/history/SUNWapch22m-sed.p5m
components/meta-packages/history/SUNWapch22m-xml2enc.p5m
make-rules/configure.mk
make-rules/justmake.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_dtrace/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,57 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		mod_dtrace
+COMPONENT_VERSION=	0.3.1
+COMPONENT_SRC=		src
+
+include ../../../make-rules/justmake.mk
+include ../../../make-rules/ips.mk
+
+APACHE_USR_PREFIX=/usr/apache2/2.2
+
+$(BUILD_DIR_32)/.built:	COMPONENT_BUILD_ARGS +=	APXS=$(APACHE_USR_PREFIX)/bin/apxs
+$(BUILD_DIR_64)/.built:	COMPONENT_BUILD_ARGS +=	APXS=$(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs
+$(BUILD_DIR_32)/.built:	COMPONENT_BUILD_ARGS +=	DTRACE="/usr/sbin/dtrace -32"
+$(BUILD_DIR_64)/.built:	COMPONENT_BUILD_ARGS +=	DTRACE="/usr/sbin/dtrace -64"
+
+PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+
+download:
+
+clobber: clean
+
+$(SOURCE_DIR)/.prep:
+	$(TOUCH) $@
+
+clean::
+	$(RM) $(SOURCE_DIR)/.prep
+
+build: $(BUILD_32_and_64)
+
+test: $(NO_TESTS)
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include ../../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_dtrace/apache-dtrace.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,57 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22/module/apache-dtrace@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="DTrace plugin for Apache Web Server V2.2"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://prefetch.net/projects/apache_modtrace/"
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/PSARC/2008/090
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license apache.license license="Apache v2.0"
+
+dir path=etc
+dir path=etc/apache2
+dir path=etc/apache2/2.2
+dir path=etc/apache2/2.2/conf.d
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/libexec
+dir path=usr/apache2/2.2/libexec/$(MACH64)
+file dtrace.conf path=etc/apache2/2.2/conf.d/dtrace.conf mode=0644 preserve=renamenew \
+    original_name=SUNWapch22m-dtrace:etc/apache2/2.2/conf.d/dtrace.conf
+file build/$(MACH32)/.libs/mod_dtrace.so path=usr/apache2/2.2/libexec/mod_dtrace.so
+file build/$(MACH64)/.libs/mod_dtrace.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_dtrace.so
+
+legacy	pkg=SUNWapch22m-dtrace \
+	name="DTrace plugin for Apache Web Server V2.2" \
+	desc="Dtrace plugin for Apache Web Server Version 2.2"
+
+legacy	pkg=SUNWapch22r-dtrace \
+	name="DTrace plugin for Apache Web Server V2.2" \
+	desc="Dtrace plugin for Apache Web Server Version 2.2"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_dtrace/apache.license	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_dtrace/dtrace.conf	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,8 @@
+
+<IfDefine 64bit>
+LoadModule dtrace_module libexec/64/mod_dtrace.so
+</IfDefine>
+<IfDefine !64bit>
+LoadModule dtrace_module libexec/mod_dtrace.so
+</IfDefine>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_dtrace/src/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,44 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+APXS=apxs
+DTRACE=/usr/sbin/dtrace
+
+CC=`$(APXS) -q CC`
+CFLAGS=`$(APXS) -q CFLAGS`
+LDFLAGS_SHLIB=`$(APXS) -q LDFLAGS_SHLIB`
+
+all: .libs/mod_dtrace.so
+
+.libs/mod_dtrace.o: mod_dtrace.c
+	$(APXS) -c -o mod_dtrace.so mod_dtrace.c && rm .libs/mod_dtrace.so
+
+apache.o: .libs/mod_dtrace.o apache.d
+	$(DTRACE) -G -o apache.o -s apache.d .libs/mod_dtrace.o
+
+.libs/mod_dtrace.so: apache.o mapfile .libs/mod_dtrace.o
+	$(CC) -M mapfile $(CFLAGS) -KPIC -G $(LDFLAGS_SHLIB) -o .libs/mod_dtrace.so .libs/mod_dtrace.o apache.o
+	
+clean:
+	-rm -f *.o *.so *.lo *.la *.slo
+	-rm -rf .libs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_dtrace/src/apache.d	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,10 @@
+provider apache {
+    probe receive__request(uintptr_t);
+    probe log__request(uintptr_t,string,string);
+    probe create__child();
+    probe accept__connection(uintptr_t);
+    probe check__user__credentials(uintptr_t);
+    probe check__access(uintptr_t);
+    probe check__authorization(uintptr_t);
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_dtrace/src/mapfile	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,13 @@
+data = R0x1000000;
+{
+    local:
+        apache_receive_request;
+        apache_log_request;
+        apache_create_child;
+        apache_accept_connection;
+        apache_check_user;
+        apache_check_access;
+        apache_check_authorization;
+        dtrace_register_hooks;
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_dtrace/src/mod_dtrace.c	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,208 @@
+/* 
+* License:
+* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* Module Name: mod_dtrace
+*
+* Purpose: Apache implements a set of hooks and filters to allow 
+*          modules to view and modify requests sent to the server.
+*          This module takes advantage of this architecture to 
+*          implement several DTrace hooks.
+*
+* Notes: To get the most use out of the mod_dtrace Apache module, it will
+*        be useful to familiarize yourself with the Apache request_rec,
+*        server_rec and conn_rec structures. These can be viewed on the
+*        docx website:
+*
+*        http://docx.webperf.org/httpd_8h-source.html
+*
+*        A basic overview of each structure is included below:
+*
+*           request_rec : Contains all of the attributes (URI, filename, 
+*                         method, bytes_sent) needed to describe an
+*                         HTTP request
+*
+*           conn_rec    : Stores the connection attributes including
+*                         IP addresses and ports
+*
+*           server_rec  : Stores information to describe each virtual server
+*
+* Last Modified: 02-08-2007
+*
+* Author: Matty < matty91 at gmail dot com >
+*
+* Version: 0.3a
+*
+* Release history:
+*
+*    0.3a: Fixed bug due to NULL values -- Sebastien Bouchex Bellomie
+*
+*    0.2a: Initial release
+*
+* Build instructions are available at the following site:
+*    http://prefetch.net/projects/apache_modtrace/build.txt
+*
+*/
+
+#include "ap_config.h"
+#include "httpd.h"
+#include "http_config.h"
+#include "http_connection.h"
+#include "http_protocol.h"
+#include "http_request.h"
+#include <sys/sdt.h>
+
+module AP_MODULE_DECLARE_DATA dtrace_module;
+
+/* 
+*   Probe Function Purpoose:
+*   This probe will fire each time a request is send to the server. 
+*
+*   arg0 -> address of the request_rec structure 
+*/
+int apache_receive_request(request_rec *r)
+{
+    DTRACE_PROBE1(apache, 
+                  receive__request, 
+                  r);
+   
+    return DECLINED;
+}
+
+/* 
+*   This probe will fire each time the web server invokes the logging handlers.
+*   Since the request_rec, server_rec and conn_rec should be completely filled
+*   in when this probe fires -- this will be a useful probe.
+*   
+*   arg0 -> The address of the request_rec structure
+*/
+int apache_log_request(request_rec *r)
+{
+    /* apr_table_get will return the value of User-Agent or NULL */
+    const char *userAgent = NULL;
+    if (r->headers_in != NULL)
+    {
+        userAgent = apr_table_get(r->headers_in, "User-Agent");
+    }
+
+    /* apr_table_get will return the value of Location or NULL */
+    const char *redirectLocation = NULL;
+    if (r->headers_out) {
+        redirectLocation = apr_table_get(r->headers_out, "Location");
+    }
+
+    DTRACE_PROBE3(apache,
+                  log__request,
+                  r,
+                  userAgent,
+                  redirectLocation);
+
+    return DECLINED;
+}
+
+/* 
+*  This probe will fire each time an httpd child process is created 
+*/
+void apache_create_child(apr_pool_t *p, server_rec *s)
+{
+    DTRACE_PROBE(apache,
+                 create__child);
+}
+
+/* 
+*   This probe will fire each time a new TCP connection is created 
+*
+*   arg0 -> Client's IP address 
+*/
+int apache_accept_connection(conn_rec *c, void *csd)
+{
+    DTRACE_PROBE1(apache,
+                  accept__connection,
+                  c);
+
+    return DECLINED;
+}
+
+/*
+*   This probe will fire when the authentication stage is encountered
+*
+*   arg0 -> The address of the request_rec structure
+*
+*/
+int apache_check_user(request_rec *r)
+{
+    DTRACE_PROBE1(apache,
+                  check__user__credentials,
+                  r);
+
+    return DECLINED;
+}
+
+/*
+*   This probe will fire when the access checking stage is encountered
+*
+*   arg0 -> The address of the request_rec structure
+*
+*/
+int apache_check_access(request_rec *r)
+{
+    DTRACE_PROBE1(apache,
+                  check__access,
+                  r);
+
+    return DECLINED;
+}
+
+/*
+*   This probe will fire when the authorization checking stage is encountered
+*
+*   arg0 -> The address of the request_rec structure
+*
+*/
+int apache_check_authorization(request_rec *r)
+{
+    DTRACE_PROBE1(apache,
+                  check__authorization,
+                  r);
+
+    return DECLINED;
+}
+
+/*
+*    Define the hooks and the functions registered to those hooks
+*/
+void dtrace_register_hooks(apr_pool_t *p)
+{
+    ap_hook_post_read_request(apache_receive_request,NULL,NULL,APR_HOOK_MIDDLE);
+    ap_hook_child_init(apache_create_child,NULL, NULL, APR_HOOK_MIDDLE);
+    ap_hook_pre_connection(apache_accept_connection,NULL, NULL, APR_HOOK_MIDDLE);
+    ap_hook_check_user_id(apache_check_user,NULL,NULL,APR_HOOK_MIDDLE);
+    ap_hook_access_checker(apache_check_access,NULL,NULL,APR_HOOK_MIDDLE);
+    ap_hook_auth_checker(apache_check_authorization,NULL,NULL,APR_HOOK_MIDDLE);
+    ap_hook_log_transaction(apache_log_request,NULL,NULL,APR_HOOK_MIDDLE);
+}
+
+module AP_MODULE_DECLARE_DATA dtrace_module =
+{
+    STANDARD20_MODULE_STUFF,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    dtrace_register_hooks
+};
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_fcgid/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,55 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		mod_fcgid
+COMPONENT_VERSION=	2.3.6
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	sha1:018245896f331909e896685ab3ca86b163846e4d
+COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/httpd/mod_fcgid/$(COMPONENT_ARCHIVE)
+
+include ../../../make-rules/prep.mk
+include ../../../make-rules/justmake.mk
+include ../../../make-rules/ips.mk
+
+PATCH_LEVEL=0
+
+APACHE_USR_PREFIX=/usr/apache2/2.2
+
+$(BUILD_DIR_32)/.built:	APXS=$(APACHE_USR_PREFIX)/bin/apxs
+$(BUILD_DIR_64)/.built:	APXS=$(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs
+
+COMPONENT_PRE_BUILD_ACTION= ( cd $(@D); APXS=$(APXS) ./configure.apxs )
+
+PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+
+build: $(BUILD_32_and_64)
+
+install: $(INSTALL_32_and_64)
+
+test: $(NO_TESTS)
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include ../../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_fcgid/apache-fcgid.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,64 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22/module/apache-fcgid@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="FastCGI plugin for Apache Web Server V2.2"
+set name=pkg.description \
+    value="FastCGI plugin for Apache Web Server Version 2.2"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://httpd.apache.org/mod_fcgid/"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2009/600
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license apache.license license="Apache v2.0"
+
+dir path=etc
+dir path=etc/apache2
+dir path=etc/apache2/2.2
+dir path=etc/apache2/2.2/conf.d
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/libexec
+dir path=usr/apache2/2.2/libexec/$(MACH64)
+dir path=usr/apache2/2.2/manual
+dir path=usr/apache2/2.2/manual/mod
+file fcgid.conf path=etc/apache2/2.2/conf.d/fcgid.conf mode=0644 preserve=renamenew \
+    original_name=SUNWapch22m-fcgid:etc/apache2/2.2/conf.d/fcgid.conf
+file path=usr/apache2/2.2/libexec/mod_fcgid.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_fcgid.so
+file path=usr/apache2/2.2/manual/mod/mod_fcgid.html.en
+file path=usr/apache2/2.2/manual/mod/mod_fcgid.html
+
+legacy	pkg=SUNWapch22m-fcgid \
+	name="FastCGI plugin for Apache Web Server V2.2" \
+	desc="FastCGI plugin for Apache Web Server Version 2.2 (2.3.6)"
+
+legacy	pkg=SUNWapch22r-fcgid \
+	name="FastCGI plugin for Apache Web Server V2.2" \
+	desc="FastCGI plugin for Apache Web Server Version 2.2 (2.3.6)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_fcgid/apache.license	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,611 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+APACHE HTTP SERVER SUBCOMPONENTS: 
+
+The Apache HTTP Server includes a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the following licenses. 
+
+For the mod_mime_magic component:
+
+/*
+ * mod_mime_magic: MIME type lookup via file magic numbers
+ * Copyright (c) 1996-1997 Cisco Systems, Inc.
+ *
+ * This software was submitted by Cisco Systems to the Apache Group in July
+ * 1997.  Future revisions and derivatives of this source code must
+ * acknowledge Cisco Systems as the original contributor of this module.
+ * All other licensing and usage conditions are those of the Apache Group.
+ *
+ * Some of this code is derived from the free version of the file command
+ * originally posted to comp.sources.unix.  Copyright info for that program
+ * is included below as required.
+ * ---------------------------------------------------------------------------
+ * - Copyright (c) Ian F. Darwin, 1987. Written by Ian F. Darwin.
+ *
+ * This software is not subject to any license of the American Telephone and
+ * Telegraph Company or of the Regents of the University of California.
+ *
+ * Permission is granted to anyone to use this software for any purpose on any
+ * computer system, and to alter it and redistribute it freely, subject to
+ * the following restrictions:
+ *
+ * 1. The author is not responsible for the consequences of use of this
+ * software, no matter how awful, even if they arise from flaws in it.
+ *
+ * 2. The origin of this software must not be misrepresented, either by
+ * explicit claim or by omission.  Since few users ever read sources, credits
+ * must appear in the documentation.
+ *
+ * 3. Altered versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.  Since few users ever read
+ * sources, credits must appear in the documentation.
+ *
+ * 4. This notice may not be removed or altered.
+ * -------------------------------------------------------------------------
+ *
+ */
+
+
+For the  modules\mappers\mod_imagemap.c component:
+
+  "macmartinized" polygon code copyright 1992 by Eric Haines, [email protected]
+
+For the  server\util_md5.c component:
+
+/************************************************************************
+ * NCSA HTTPd Server
+ * Software Development Group
+ * National Center for Supercomputing Applications
+ * University of Illinois at Urbana-Champaign
+ * 605 E. Springfield, Champaign, IL 61820
+ * [email protected]
+ *
+ * Copyright  (C)  1995, Board of Trustees of the University of Illinois
+ *
+ ************************************************************************
+ *
+ * md5.c: NCSA HTTPd code which uses the md5c.c RSA Code
+ *
+ *  Original Code Copyright (C) 1994, Jeff Hostetler, Spyglass, Inc.
+ *  Portions of Content-MD5 code Copyright (C) 1993, 1994 by Carnegie Mellon
+ *     University (see Copyright below).
+ *  Portions of Content-MD5 code Copyright (C) 1991 Bell Communications 
+ *     Research, Inc. (Bellcore) (see Copyright below).
+ *  Portions extracted from mpack, John G. Myers - [email protected]
+ *  Content-MD5 Code contributed by Martin Hamilton ([email protected])
+ *
+ */
+
+
+/* these portions extracted from mpack, John G. Myers - [email protected] */
+/* (C) Copyright 1993,1994 by Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of Carnegie
+ * Mellon University not be used in advertising or publicity
+ * pertaining to distribution of the software without specific,
+ * written prior permission.  Carnegie Mellon University makes no
+ * representations about the suitability of this software for any
+ * purpose.  It is provided "as is" without express or implied
+ * warranty.
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore)
+ *
+ * Permission to use, copy, modify, and distribute this material
+ * for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice and this permission notice
+ * appear in all copies, and that the name of Bellcore not be
+ * used in advertising or publicity pertaining to this
+ * material without the specific, prior written permission
+ * of an authorized representative of Bellcore.  BELLCORE
+ * MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY
+ * OF THIS MATERIAL FOR ANY PURPOSE.  IT IS PROVIDED "AS IS",
+ * WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.  
+ */
+
+For the  srclib\apr\include\apr_md5.h component: 
+/*
+ * This is work is derived from material Copyright RSA Data Security, Inc.
+ *
+ * The RSA copyright statement and Licence for that original material is
+ * included below. This is followed by the Apache copyright statement and
+ * licence for the modifications made to that material.
+ */
+
+/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+   rights reserved.
+
+   License to copy and use this software is granted provided that it
+   is identified as the "RSA Data Security, Inc. MD5 Message-Digest
+   Algorithm" in all material mentioning or referencing this software
+   or this function.
+
+   License is also granted to make and use derivative works provided
+   that such works are identified as "derived from the RSA Data
+   Security, Inc. MD5 Message-Digest Algorithm" in all material
+   mentioning or referencing the derived work.
+
+   RSA Data Security, Inc. makes no representations concerning either
+   the merchantability of this software or the suitability of this
+   software for any particular purpose. It is provided "as is"
+   without express or implied warranty of any kind.
+
+   These notices must be retained in any copies of any part of this
+   documentation and/or software.
+ */
+
+For the  srclib\apr\passwd\apr_md5.c component:
+
+/*
+ * This is work is derived from material Copyright RSA Data Security, Inc.
+ *
+ * The RSA copyright statement and Licence for that original material is
+ * included below. This is followed by the Apache copyright statement and
+ * licence for the modifications made to that material.
+ */
+
+/* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm
+ */
+
+/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+   rights reserved.
+
+   License to copy and use this software is granted provided that it
+   is identified as the "RSA Data Security, Inc. MD5 Message-Digest
+   Algorithm" in all material mentioning or referencing this software
+   or this function.
+
+   License is also granted to make and use derivative works provided
+   that such works are identified as "derived from the RSA Data
+   Security, Inc. MD5 Message-Digest Algorithm" in all material
+   mentioning or referencing the derived work.
+
+   RSA Data Security, Inc. makes no representations concerning either
+   the merchantability of this software or the suitability of this
+   software for any particular purpose. It is provided "as is"
+   without express or implied warranty of any kind.
+
+   These notices must be retained in any copies of any part of this
+   documentation and/or software.
+ */
+/*
+ * The apr_md5_encode() routine uses much code obtained from the FreeBSD 3.0
+ * MD5 crypt() function, which is licenced as follows:
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <[email protected]> wrote this file.  As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return.  Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ */
+
+For the srclib\apr-util\crypto\apr_md4.c component:
+
+ * This is derived from material copyright RSA Data Security, Inc.
+ * Their notice is reproduced below in its entirety.
+ *
+ * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+ * rights reserved.
+ *
+ * License to copy and use this software is granted provided that it
+ * is identified as the "RSA Data Security, Inc. MD4 Message-Digest
+ * Algorithm" in all material mentioning or referencing this software
+ * or this function.
+ *
+ * License is also granted to make and use derivative works provided
+ * that such works are identified as "derived from the RSA Data
+ * Security, Inc. MD4 Message-Digest Algorithm" in all material
+ * mentioning or referencing the derived work.
+ *
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ *
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+For the srclib\apr-util\include\apr_md4.h component:
+
+ *
+ * This is derived from material copyright RSA Data Security, Inc.
+ * Their notice is reproduced below in its entirety.
+ *
+ * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+ * rights reserved.
+ *
+ * License to copy and use this software is granted provided that it
+ * is identified as the "RSA Data Security, Inc. MD4 Message-Digest
+ * Algorithm" in all material mentioning or referencing this software
+ * or this function.
+ *
+ * License is also granted to make and use derivative works provided
+ * that such works are identified as "derived from the RSA Data
+ * Security, Inc. MD4 Message-Digest Algorithm" in all material
+ * mentioning or referencing the derived work.
+ *
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ *
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+
+For the srclib\apr-util\test\testmd4.c component:
+
+ *
+ * This is derived from material copyright RSA Data Security, Inc.
+ * Their notice is reproduced below in its entirety.
+ *
+ * Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All
+ * rights reserved.
+ *
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ *
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+For the srclib\apr-util\xml\expat\conftools\install-sh component:
+
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
+
+For the srclib\pcre\install-sh component:
+
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+
+For the pcre component:
+
+PCRE LICENCE
+------------
+
+PCRE is a library of functions to support regular expressions whose syntax
+and semantics are as close as possible to those of the Perl 5 language.
+
+Release 5 of PCRE is distributed under the terms of the "BSD" licence, as
+specified below. The documentation for PCRE, supplied in the "doc"
+directory, is distributed under the same terms as the software itself.
+
+Written by: Philip Hazel <[email protected]>
+
+University of Cambridge Computing Service,
+Cambridge, England. Phone: +44 1223 334714.
+
+Copyright (c) 1997-2004 University of Cambridge
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+
+    * 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.
+
+    * Neither the name of the University of Cambridge nor the names of its
+      contributors may be used to endorse or promote products derived from
+      this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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.
+
+End PCRE LICENCE
+
+
+For the test\zb.c component:
+
+/*                          ZeusBench V1.01
+			    ===============
+
+This program is Copyright (C) Zeus Technology Limited 1996.
+
+This program may be used and copied freely providing this copyright notice
+is not removed.
+
+This software is provided "as is" and any express or implied waranties, 
+including but not limited to, the implied warranties of merchantability and
+fitness for a particular purpose are disclaimed.  In no event shall 
+Zeus Technology Ltd. be liable for any direct, indirect, incidental, special, 
+exemplary, or consequential damaged (including, but not limited to, 
+procurement of substitute good or services; loss of use, data, or profits;
+or business interruption) however caused and on 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.
+
+     Written by Adam Twiss ([email protected]).  March 1996
+
+Thanks to the following people for their input:
+  Mike Belshe ([email protected]) 
+  Michael Campanella ([email protected])
+
+*/
+
+For the expat xml parser component:
+
+Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
+                               and Clark Cooper
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+	
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+	
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====================================================================
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_fcgid/fcgid.conf	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,19 @@
+
+<IfDefine 64bit>
+LoadModule fcgid_module libexec/64/mod_fcgid.so
+</IfDefine>
+<IfDefine !64bit>
+LoadModule fcgid_module libexec/mod_fcgid.so
+</IfDefine>
+
+<IfModule mod_fcgid.c>
+FcgidProcessTableFile /var/run/apache2/2.2/fcgid_shm
+FcgidIPCDir /var/run/apache2/2.2/fcgid.sock
+AddHandler fcgid-script .fcgi
+<Location /fcgid>
+    SetHandler fcgid-script
+    Options ExecCGI
+    allow from all
+</Location>
+</IfModule>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_fcgid/patches/fcgid.badspawnctl-r1037727.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,17 @@
+#
+#  Fix regression in 2.3.6 which broke process controls when using vhost-
+#  specific configuration.
+#
+Index: modules/fcgid/fcgid_spawn_ctl.c
+===================================================================
+--- modules/fcgid/fcgid_spawn_ctl.c	(revision 1037726)
++++ modules/fcgid/fcgid_spawn_ctl.c	(revision 1037727)
+@@ -178,7 +178,7 @@
+         if (current_node->inode == command->inode
+             && current_node->deviceid == command->deviceid
+             && !strcmp(current_node->cmdline, command->cmdline)
+-            && current_node->vhost_id == sconf->vhost_id
++            && current_node->vhost_id == command->vhost_id
+             && current_node->uid == command->uid
+             && current_node->gid == command->gid)
+             break;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_fcgid/patches/fcgid.configure.apxs.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,14 @@
+--- configure.apxs.orig	Wed Jun  2 10:55:51 2010
++++ configure.apxs	Tue May 10 09:48:15 2011
+@@ -24,8 +24,9 @@
+ # scripts expect them to be the parent of the build directory
+ # they fail to use the $installbuilddir path.
+ exp_installbuilddir=`$APXS -q exp_installbuilddir`
+-top_installbuilddir=`cd $exp_installbuilddir/..; pwd`
+-top_installbuilddir=`echo $exp_installbuilddir | sed -e "s#/[^/]*\\\$##;"`
++# Better to set top_builddir and top_srcdir to Apache prefix in order 64
++# bits module is built (to avoid problem with $(MACH64) directory in path).
++top_installbuilddir=`$APXS -q prefix`
+ 
+ builddir=`pwd`
+ srcdir=$builddir
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_jk/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,60 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		tomcat-connectors
+COMPONENT_VERSION=	1.2.28
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)-src
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	sha1:0e022e242d88f4d42cbbfa42883d02e14ad16929
+COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
+
+include ../../../make-rules/prep.mk
+include ../../../make-rules/configure.mk
+include ../../../make-rules/ips.mk
+
+PATCH_LEVEL=0
+
+APACHE_USR_PREFIX=/usr/apache2/2.2
+
+CONFIGURE_SCRIPT = $(SOURCE_DIR)/native/configure
+
+# Forcing CC from environment instead. Using one provided by apxs doesn't
+# make mod_jk build.
+CC=
+
+CONFIGURE_OPTIONS.32 += --with-apxs=$(APACHE_USR_PREFIX)/bin/apxs
+CONFIGURE_OPTIONS.64 += --with-apxs=$(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs
+
+# Header files are missing during build without cloning.
+COMPONENT_PRE_CONFIGURE_ACTION += ($(CLONEY) $(SOURCE_DIR)/native $(@D));
+
+PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+
+build: $(BUILD_32_and_64)
+
+test: $(NO_TESTS)
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include ../../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_jk/apache-jk.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,62 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22/module/apache-jk@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="Tomcat Connector plugin for Apache Web Server V2.2"
+set name=pkg.description \
+    value="Tomcat Connector plugin for Apache Web Server Version 2.2"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://tomcat.apache.org/connectors-doc/"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/PSARC/2008/090
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license apache.license license="Apache v2.0"
+
+dir path=etc
+dir path=etc/apache2
+dir path=etc/apache2/2.2
+dir path=etc/apache2/2.2/conf.d
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/libexec
+dir path=usr/apache2/2.2/libexec/$(MACH64)
+file jk.conf path=etc/apache2/2.2/conf.d/jk.conf mode=0644 preserve=renamenew \
+    original_name=SUNWapch22m-jk:etc/apache2/2.2/conf.d/jk.conf
+file workers.properties path=etc/apache2/2.2/conf.d/workers.properties mode=0644 preserve=renamenew \
+    original_name=SUNWapch22m-jk:etc/apache2/2.2/conf.d/workers.properties
+file build/$(MACH32)/apache-2.0/mod_jk.so path=usr/apache2/2.2/libexec/mod_jk.so
+file build/$(MACH64)/apache-2.0/mod_jk.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_jk.so
+
+legacy	pkg=SUNWapch22m-jk \
+	name="Tomcat Connector plugin for Apache Web Server Version 2.2 (1.2.28)" \
+	desc="Tomcat Connector plugin for Apache Web Server Version 2.2 (1.2.28)"
+
+legacy	pkg=SUNWapch22r-jk \
+	name="Tomcat Connector plugin for Apache Web Server Version 2.2 (1.2.28)" \
+	desc="Tomcat Connector plugin for Apache Web Server Version 2.2 (1.2.28)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_jk/apache.license	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_jk/jk.conf	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,24 @@
+
+<IfDefine 64bit>
+LoadModule jk_module libexec/64/mod_jk.so
+</IfDefine>
+<IfDefine !64bit>
+LoadModule jk_module libexec/mod_jk.so
+</IfDefine>
+
+<IfModule mod_jk.c>
+   JkWorkersFile /etc/apache2/2.2/conf.d/workers.properties
+   # Where to put jk shared memory
+   # Update this path to match your local state directory or logs directory
+   JkShmFile     /var/apache2/2.2/logs/mod_jk.shm
+   # Where to put jk logs
+   # Update this path to match your logs directory location (put mod_jk.log next to access_log)
+   JkLogFile     /var/apache2/2.2/logs/mod_jk.log
+   # Set the jk log level [debug/error/info]
+   JkLogLevel    info
+   # Select the timestamp log format
+   JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+   # Send everything for context /examples to worker named worker1 (ajp13)
+   JkMount  /examples/* worker1
+</IfModule>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_jk/workers.properties	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,6 @@
+# Define 1 real worker using ajp13
+worker.list=worker1
+# Set properties for worker1 (ajp13)
+worker.worker1.type=ajp13
+worker.worker1.host=localhost
+worker.worker1.port=8009
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_perl/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,71 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		mod_perl
+COMPONENT_VERSION=	2.0.4
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	sha1:65299a16ec414a690a48a2bbe63acaa3c6bb897b
+COMPONENT_ARCHIVE_URL=	http://perl.apache.org/dist/$(COMPONENT_ARCHIVE)
+
+CONFIGURE_DEFAULT_DIRS=no
+
+include ../../../make-rules/prep.mk
+include ../../../make-rules/justmake.mk
+include ../../../make-rules/ips.mk
+
+APACHE_USR_PREFIX=/usr/apache2/2.2
+AP_PERL5LIB=$(APACHE_USR_PREFIX)/lib/perl
+AP_PERL5BIN=$(APACHE_USR_PREFIX)/bin
+PERLMAN=$(APACHE_USR_PREFIX)/man
+
+COMPONENT_PRE_BUILD_ACTION= ( \
+	cd $(@D); $(PERL) Makefile.PL \
+	INSTALLDIRS=perl \
+	INSTALLSITELIB=$(AP_PERL5LIB) \
+	INSTALLARCHLIB=$(AP_PERL5LIB) \
+	INSTALLSITEARCH=$(AP_PERL5LIB) \
+	INSTALLPRIVLIB=$(AP_PERL5LIB) \
+	SITEARCHEXP=$(AP_PERL5LIB) \
+	SITELIBEXP=$(AP_PERL5LIB) \
+	INSTALLMAN1DIR=$(PERLMAN)/man1 \
+	INSTALLMAN3DIR=$(PERLMAN)/man3 \
+	INSTALLSCRIPT=$(AP_PERL5BIN) \
+	MP_APXS=$(APACHE_USR_PREFIX)/bin/apxs)
+
+COMPONENT_TEST_TARGETS=	test
+
+PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+
+build: $(BUILD_32)
+
+install: $(INSTALL_32)
+
+# Won't start (maybe because of mod_dtrace.so on system).
+#test: $(TEST_32)
+test: $(NO_TESTS)
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include ../../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_perl/apache-perl.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,496 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22/module/apache-perl@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="Perl plugin for Apache Web Server V2.2"
+set name=pkg.description \
+    value="Perl plugin for Apache Web Server Version 2.2"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://perl.apache.org/"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/PSARC/2007/586
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license LICENSE license="Apache v2.0"
+
+
+dir path=etc
+dir path=etc/apache2
+dir path=etc/apache2/2.2
+dir path=etc/apache2/2.2/conf.d
+file perl.conf path=etc/apache2/2.2/conf.d/perl.conf mode=0644 preserve=renamenew
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/bin
+dir path=usr/apache2/2.2/include
+dir path=usr/apache2/2.2/lib
+dir path=usr/apache2/2.2/lib/perl
+dir path=usr/apache2/2.2/lib/perl/APR
+dir path=usr/apache2/2.2/lib/perl/Apache
+dir path=usr/apache2/2.2/lib/perl/Apache2
+dir path=usr/apache2/2.2/lib/perl/Apache2/PerlSections
+dir path=usr/apache2/2.2/lib/perl/Bundle
+dir path=usr/apache2/2.2/lib/perl/ModPerl
+dir path=usr/apache2/2.2/lib/perl/auto
+dir path=usr/apache2/2.2/lib/perl/auto/APR
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Base64
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Brigade
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Bucket
+dir path=usr/apache2/2.2/lib/perl/auto/APR/BucketAlloc
+dir path=usr/apache2/2.2/lib/perl/auto/APR/BucketType
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Const
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Date
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Error
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Finfo
+dir path=usr/apache2/2.2/lib/perl/auto/APR/IpSubnet
+dir path=usr/apache2/2.2/lib/perl/auto/APR/OS
+dir path=usr/apache2/2.2/lib/perl/auto/APR/PerlIO
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Pool
+dir path=usr/apache2/2.2/lib/perl/auto/APR/SockAddr
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Socket
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Status
+dir path=usr/apache2/2.2/lib/perl/auto/APR/String
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Table
+dir path=usr/apache2/2.2/lib/perl/auto/APR/ThreadMutex
+dir path=usr/apache2/2.2/lib/perl/auto/APR/ThreadRWLock
+dir path=usr/apache2/2.2/lib/perl/auto/APR/URI
+dir path=usr/apache2/2.2/lib/perl/auto/APR/UUID
+dir path=usr/apache2/2.2/lib/perl/auto/APR/Util
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Access
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Build
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/CmdParms
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Command
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Connection
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/ConnectionUtil
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Const
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Directive
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Filter
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/FilterRec
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/HookRun
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Log
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/MPM
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Module
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Process
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestIO
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestRec
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestUtil
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Response
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerRec
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerUtil
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/SubProcess
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/SubRequest
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/URI
+dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Util
+dir path=usr/apache2/2.2/lib/perl/auto/ModPerl
+dir path=usr/apache2/2.2/lib/perl/auto/ModPerl/Const
+dir path=usr/apache2/2.2/lib/perl/auto/ModPerl/Global
+dir path=usr/apache2/2.2/lib/perl/auto/ModPerl/Util
+dir path=usr/apache2/2.2/lib/perl/auto/mod_perl2
+dir path=usr/apache2/2.2/libexec
+dir path=usr/apache2/2.2/man
+dir path=usr/apache2/2.2/man/man3
+dir path=usr/bin
+file path=usr/apache2/2.2/bin/mp2bug
+file path=usr/apache2/2.2/include/mod_perl.h
+file path=usr/apache2/2.2/include/modperl_apache_compat.h
+file path=usr/apache2/2.2/include/modperl_apache_includes.h
+file path=usr/apache2/2.2/include/modperl_apr_compat.h
+file path=usr/apache2/2.2/include/modperl_apr_includes.h
+file path=usr/apache2/2.2/include/modperl_apr_perlio.h
+file path=usr/apache2/2.2/include/modperl_bucket.h
+file path=usr/apache2/2.2/include/modperl_callback.h
+file path=usr/apache2/2.2/include/modperl_cgi.h
+file path=usr/apache2/2.2/include/modperl_cmd.h
+file path=usr/apache2/2.2/include/modperl_common_includes.h
+file path=usr/apache2/2.2/include/modperl_common_log.h
+file path=usr/apache2/2.2/include/modperl_common_types.h
+file path=usr/apache2/2.2/include/modperl_common_util.h
+file path=usr/apache2/2.2/include/modperl_config.h
+file path=usr/apache2/2.2/include/modperl_const.h
+file path=usr/apache2/2.2/include/modperl_constants.h
+file path=usr/apache2/2.2/include/modperl_debug.h
+file path=usr/apache2/2.2/include/modperl_directives.h
+file path=usr/apache2/2.2/include/modperl_env.h
+file path=usr/apache2/2.2/include/modperl_error.h
+file path=usr/apache2/2.2/include/modperl_filter.h
+file path=usr/apache2/2.2/include/modperl_flags.h
+file path=usr/apache2/2.2/include/modperl_global.h
+file path=usr/apache2/2.2/include/modperl_gtop.h
+file path=usr/apache2/2.2/include/modperl_handler.h
+file path=usr/apache2/2.2/include/modperl_hooks.h
+file path=usr/apache2/2.2/include/modperl_interp.h
+file path=usr/apache2/2.2/include/modperl_io.h
+file path=usr/apache2/2.2/include/modperl_io_apache.h
+file path=usr/apache2/2.2/include/modperl_largefiles.h
+file path=usr/apache2/2.2/include/modperl_log.h
+file path=usr/apache2/2.2/include/modperl_mgv.h
+file path=usr/apache2/2.2/include/modperl_module.h
+file path=usr/apache2/2.2/include/modperl_options.h
+file path=usr/apache2/2.2/include/modperl_pcw.h
+file path=usr/apache2/2.2/include/modperl_perl.h
+file path=usr/apache2/2.2/include/modperl_perl_global.h
+file path=usr/apache2/2.2/include/modperl_perl_includes.h
+file path=usr/apache2/2.2/include/modperl_perl_pp.h
+file path=usr/apache2/2.2/include/modperl_perl_unembed.h
+file path=usr/apache2/2.2/include/modperl_svptr_table.h
+file path=usr/apache2/2.2/include/modperl_sys.h
+file path=usr/apache2/2.2/include/modperl_time.h
+file path=usr/apache2/2.2/include/modperl_tipool.h
+file path=usr/apache2/2.2/include/modperl_trace.h
+file path=usr/apache2/2.2/include/modperl_types.h
+file path=usr/apache2/2.2/include/modperl_util.h
+file path=usr/apache2/2.2/include/modperl_xs_sv_convert.h
+file path=usr/apache2/2.2/include/modperl_xs_typedefs.h
+file path=usr/apache2/2.2/include/modperl_xs_util.h
+file path=usr/apache2/2.2/lib/perl/APR.pm
+file path=usr/apache2/2.2/lib/perl/APR/Base64.pm
+file path=usr/apache2/2.2/lib/perl/APR/Brigade.pm
+file path=usr/apache2/2.2/lib/perl/APR/Bucket.pm
+file path=usr/apache2/2.2/lib/perl/APR/BucketAlloc.pm
+file path=usr/apache2/2.2/lib/perl/APR/BucketType.pm
+file path=usr/apache2/2.2/lib/perl/APR/Const.pm
+file path=usr/apache2/2.2/lib/perl/APR/Date.pm
+file path=usr/apache2/2.2/lib/perl/APR/Error.pm
+file path=usr/apache2/2.2/lib/perl/APR/Finfo.pm
+file path=usr/apache2/2.2/lib/perl/APR/IpSubnet.pm
+file path=usr/apache2/2.2/lib/perl/APR/OS.pm
+file path=usr/apache2/2.2/lib/perl/APR/PerlIO.pm
+file path=usr/apache2/2.2/lib/perl/APR/Pool.pm
+file path=usr/apache2/2.2/lib/perl/APR/SockAddr.pm
+file path=usr/apache2/2.2/lib/perl/APR/Socket.pm
+file path=usr/apache2/2.2/lib/perl/APR/Status.pm
+file path=usr/apache2/2.2/lib/perl/APR/String.pm
+file path=usr/apache2/2.2/lib/perl/APR/Table.pm
+file path=usr/apache2/2.2/lib/perl/APR/ThreadMutex.pm
+file path=usr/apache2/2.2/lib/perl/APR/ThreadRWLock.pm
+file path=usr/apache2/2.2/lib/perl/APR/URI.pm
+file path=usr/apache2/2.2/lib/perl/APR/UUID.pm
+file path=usr/apache2/2.2/lib/perl/APR/Util.pm
+file path=usr/apache2/2.2/lib/perl/APR/XSLoader.pm
+file path=usr/apache2/2.2/lib/perl/Apache/Test.pm
+file path=usr/apache2/2.2/lib/perl/Apache/Test5005compat.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestBuild.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestClient.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestCommon.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestCommonPost.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestConfig.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestConfigC.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestConfigPHP.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestConfigParrot.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestConfigParse.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestConfigPerl.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestHandler.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestHarness.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestHarnessPHP.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestMB.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestMM.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestPerlDB.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestReport.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestReportPerl.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestRequest.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestRun.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestRunPHP.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestRunParrot.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestRunPerl.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestSSLCA.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestServer.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestSmoke.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestSmokePerl.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestSort.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestTrace.pm
+file path=usr/apache2/2.2/lib/perl/Apache/TestUtil.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Access.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Build.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/BuildConfig.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/CmdParms.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Command.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Connection.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/ConnectionUtil.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Const.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Directive.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Filter.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/FilterRec.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/HookRun.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Log.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/MPM.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Module.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/ParseSource.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/PerlSections.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/PerlSections/Dump.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Process.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Reload.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/RequestIO.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/RequestRec.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/RequestUtil.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Resource.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Response.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/ServerRec.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/ServerUtil.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/SizeLimit.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/SourceTables.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Status.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/SubProcess.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/SubRequest.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/URI.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/Util.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/XSLoader.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/compat.pm
+file path=usr/apache2/2.2/lib/perl/Apache2/porting.pm
+file path=usr/apache2/2.2/lib/perl/Bundle/Apache2.pm
+file path=usr/apache2/2.2/lib/perl/Bundle/ApacheTest.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/BuildMM.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/BuildOptions.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/CScan.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/Code.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/Config.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/Const.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/FunctionMap.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/Global.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/MM.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/Manifest.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/MapUtil.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/MethodLookup.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/ParseSource.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/PerlRun.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/PerlRunPrefork.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/Registry.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/RegistryBB.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/RegistryCooker.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/RegistryLoader.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/RegistryPrefork.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/StructureMap.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/TestReport.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/TestRun.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/TypeMap.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/Util.pm
+file path=usr/apache2/2.2/lib/perl/ModPerl/WrapXS.pm
+file path=usr/apache2/2.2/lib/perl/auto/APR/APR.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/APR.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Base64/Base64.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Base64/Base64.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Brigade/Brigade.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Brigade/Brigade.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Bucket/Bucket.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Bucket/Bucket.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/BucketAlloc/BucketAlloc.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/BucketAlloc/BucketAlloc.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/BucketType/BucketType.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/BucketType/BucketType.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Const/Const.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Const/Const.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Date/Date.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Date/Date.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Error/Error.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Error/Error.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Finfo/Finfo.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Finfo/Finfo.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/IpSubnet/IpSubnet.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/IpSubnet/IpSubnet.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/OS/OS.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/OS/OS.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/PerlIO/PerlIO.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/PerlIO/PerlIO.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Pool/Pool.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Pool/Pool.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/SockAddr/SockAddr.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/SockAddr/SockAddr.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Socket/Socket.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Socket/Socket.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Status/Status.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Status/Status.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/String/String.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/String/String.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Table/Table.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Table/Table.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/ThreadMutex/ThreadMutex.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/ThreadMutex/ThreadMutex.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/ThreadRWLock/ThreadRWLock.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/ThreadRWLock/ThreadRWLock.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/URI/URI.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/URI/URI.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/UUID/UUID.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/UUID/UUID.so
+file path=usr/apache2/2.2/lib/perl/auto/APR/Util/Util.bs
+file path=usr/apache2/2.2/lib/perl/auto/APR/Util/Util.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Access/Access.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Access/Access.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Build/autosplit.ix
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/CmdParms/CmdParms.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/CmdParms/CmdParms.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Command/Command.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Command/Command.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Connection/Connection.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Connection/Connection.so
+file \
+    path=usr/apache2/2.2/lib/perl/auto/Apache2/ConnectionUtil/ConnectionUtil.bs
+file \
+    path=usr/apache2/2.2/lib/perl/auto/Apache2/ConnectionUtil/ConnectionUtil.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Const/Const.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Const/Const.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Directive/Directive.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Directive/Directive.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Filter/Filter.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Filter/Filter.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/FilterRec/FilterRec.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/FilterRec/FilterRec.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/HookRun/HookRun.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/HookRun/HookRun.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Log/Log.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Log/Log.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/MPM/MPM.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/MPM/MPM.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Module/Module.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Module/Module.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Process/Process.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Process/Process.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestIO/RequestIO.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestIO/RequestIO.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestRec/RequestRec.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestRec/RequestRec.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestUtil/RequestUtil.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestUtil/RequestUtil.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Response/Response.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Response/Response.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerRec/ServerRec.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerRec/ServerRec.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerUtil/ServerUtil.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerUtil/ServerUtil.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/SubProcess/SubProcess.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/SubProcess/SubProcess.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/SubRequest/SubRequest.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/SubRequest/SubRequest.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/URI/URI.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/URI/URI.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Util/Util.bs
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/Util/Util.so
+file path=usr/apache2/2.2/lib/perl/auto/Apache2/typemap
+file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Const/Const.bs
+file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Const/Const.so
+file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Global/Global.bs
+file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Global/Global.so
+file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Util/Util.bs
+file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Util/Util.so
+file path=usr/apache2/2.2/lib/perl/auto/mod_perl2/.packlist
+file path=usr/apache2/2.2/lib/perl/mod_perl2.pm
+file path=usr/apache2/2.2/lib/perl/perllocal.pod
+file path=usr/apache2/2.2/libexec/mod_perl.so
+file path=usr/apache2/2.2/man/man3/APR.3
+file path=usr/apache2/2.2/man/man3/APR::Base64.3
+file path=usr/apache2/2.2/man/man3/APR::Brigade.3
+file path=usr/apache2/2.2/man/man3/APR::Bucket.3
+file path=usr/apache2/2.2/man/man3/APR::BucketAlloc.3
+file path=usr/apache2/2.2/man/man3/APR::BucketType.3
+file path=usr/apache2/2.2/man/man3/APR::Const.3
+file path=usr/apache2/2.2/man/man3/APR::Date.3
+file path=usr/apache2/2.2/man/man3/APR::Error.3
+file path=usr/apache2/2.2/man/man3/APR::Finfo.3
+file path=usr/apache2/2.2/man/man3/APR::IpSubnet.3
+file path=usr/apache2/2.2/man/man3/APR::OS.3
+file path=usr/apache2/2.2/man/man3/APR::PerlIO.3
+file path=usr/apache2/2.2/man/man3/APR::Pool.3
+file path=usr/apache2/2.2/man/man3/APR::SockAddr.3
+file path=usr/apache2/2.2/man/man3/APR::Socket.3
+file path=usr/apache2/2.2/man/man3/APR::Status.3
+file path=usr/apache2/2.2/man/man3/APR::String.3
+file path=usr/apache2/2.2/man/man3/APR::Table.3
+file path=usr/apache2/2.2/man/man3/APR::ThreadMutex.3
+file path=usr/apache2/2.2/man/man3/APR::ThreadRWLock.3
+file path=usr/apache2/2.2/man/man3/APR::URI.3
+file path=usr/apache2/2.2/man/man3/APR::UUID.3
+file path=usr/apache2/2.2/man/man3/APR::Util.3
+file path=usr/apache2/2.2/man/man3/Apache2::Access.3
+file path=usr/apache2/2.2/man/man3/Apache2::Build.3
+file path=usr/apache2/2.2/man/man3/Apache2::CmdParms.3
+file path=usr/apache2/2.2/man/man3/Apache2::Command.3
+file path=usr/apache2/2.2/man/man3/Apache2::Connection.3
+file path=usr/apache2/2.2/man/man3/Apache2::ConnectionUtil.3
+file path=usr/apache2/2.2/man/man3/Apache2::Const.3
+file path=usr/apache2/2.2/man/man3/Apache2::Directive.3
+file path=usr/apache2/2.2/man/man3/Apache2::Filter.3
+file path=usr/apache2/2.2/man/man3/Apache2::FilterRec.3
+file path=usr/apache2/2.2/man/man3/Apache2::HookRun.3
+file path=usr/apache2/2.2/man/man3/Apache2::Log.3
+file path=usr/apache2/2.2/man/man3/Apache2::MPM.3
+file path=usr/apache2/2.2/man/man3/Apache2::Module.3
+file path=usr/apache2/2.2/man/man3/Apache2::PerlSections.3
+file path=usr/apache2/2.2/man/man3/Apache2::Process.3
+file path=usr/apache2/2.2/man/man3/Apache2::Reload.3
+file path=usr/apache2/2.2/man/man3/Apache2::RequestIO.3
+file path=usr/apache2/2.2/man/man3/Apache2::RequestRec.3
+file path=usr/apache2/2.2/man/man3/Apache2::RequestUtil.3
+file path=usr/apache2/2.2/man/man3/Apache2::Resource.3
+file path=usr/apache2/2.2/man/man3/Apache2::Response.3
+file path=usr/apache2/2.2/man/man3/Apache2::ServerRec.3
+file path=usr/apache2/2.2/man/man3/Apache2::ServerUtil.3
+file path=usr/apache2/2.2/man/man3/Apache2::SizeLimit.3
+file path=usr/apache2/2.2/man/man3/Apache2::Status.3
+file path=usr/apache2/2.2/man/man3/Apache2::SubProcess.3
+file path=usr/apache2/2.2/man/man3/Apache2::SubRequest.3
+file path=usr/apache2/2.2/man/man3/Apache2::URI.3
+file path=usr/apache2/2.2/man/man3/Apache2::Util.3
+file path=usr/apache2/2.2/man/man3/Apache2::compat.3
+file path=usr/apache2/2.2/man/man3/Apache2::porting.3
+file path=usr/apache2/2.2/man/man3/Apache::Test.3
+file path=usr/apache2/2.2/man/man3/Apache::TestConfig.3
+file path=usr/apache2/2.2/man/man3/Apache::TestMB.3
+file path=usr/apache2/2.2/man/man3/Apache::TestMM.3
+file path=usr/apache2/2.2/man/man3/Apache::TestReport.3
+file path=usr/apache2/2.2/man/man3/Apache::TestRequest.3
+file path=usr/apache2/2.2/man/man3/Apache::TestRun.3
+file path=usr/apache2/2.2/man/man3/Apache::TestRunPHP.3
+file path=usr/apache2/2.2/man/man3/Apache::TestRunPerl.3
+file path=usr/apache2/2.2/man/man3/Apache::TestSmoke.3
+file path=usr/apache2/2.2/man/man3/Apache::TestTrace.3
+file path=usr/apache2/2.2/man/man3/Apache::TestUtil.3
+file path=usr/apache2/2.2/man/man3/Bundle::Apache2.3
+file path=usr/apache2/2.2/man/man3/Bundle::ApacheTest.3
+file path=usr/apache2/2.2/man/man3/ModPerl::BuildMM.3
+file path=usr/apache2/2.2/man/man3/ModPerl::CScan.3
+file path=usr/apache2/2.2/man/man3/ModPerl::Code.3
+file path=usr/apache2/2.2/man/man3/ModPerl::Config.3
+file path=usr/apache2/2.2/man/man3/ModPerl::Const.3
+file path=usr/apache2/2.2/man/man3/ModPerl::Global.3
+file path=usr/apache2/2.2/man/man3/ModPerl::MM.3
+file path=usr/apache2/2.2/man/man3/ModPerl::MethodLookup.3
+file path=usr/apache2/2.2/man/man3/ModPerl::PerlRun.3
+file path=usr/apache2/2.2/man/man3/ModPerl::PerlRunPrefork.3
+file path=usr/apache2/2.2/man/man3/ModPerl::Registry.3
+file path=usr/apache2/2.2/man/man3/ModPerl::RegistryBB.3
+file path=usr/apache2/2.2/man/man3/ModPerl::RegistryCooker.3
+file path=usr/apache2/2.2/man/man3/ModPerl::RegistryLoader.3
+file path=usr/apache2/2.2/man/man3/ModPerl::RegistryPrefork.3
+file path=usr/apache2/2.2/man/man3/ModPerl::Util.3
+file path=usr/apache2/2.2/man/man3/mod_perl2.3
+link path=usr/bin/mp2bug target=../apache2/2.2/bin/mp2bug
+
+
+legacy	pkg=SUNWapch22u \
+	name="Apache Web Server V2.2 (usr)" \
+	desc="The Apache HTTP Server Version 2.2 (usr components)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_perl/patches/CVE-2009-0796.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,47 @@
+--- mod_perl-2.0.2/lib/Apache2/Status.pm.orig	Thu Oct 20 17:04:43 2005
++++ mod_perl-2.0.2/lib/Apache2/Status.pm	Thu Aug 20 11:38:03 2009
+@@ -28,7 +28,7 @@
+ 
+ use Apache2::Const -compile => qw(OK);
+ 
+-$Apache2::Status::VERSION = '4.00'; # mod_perl 2.0
++$Apache2::Status::VERSION = '4.01'; # mod_perl 2.0
+ 
+ use constant IS_WIN32 => ($^O eq "MSWin32");
+ 
+@@ -125,7 +125,7 @@
+         $r->print(symdump($r, $qs));
+     }
+     else {
+-        my $uri = $r->uri;
++        my $uri = $r->location;
+         $r->print('<p>');
+         $r->print(
+             map { qq[<a href="$uri?$_">$status{$_}</a><br />\n] } sort { lc $a cmp lc $b } keys %status
+@@ -197,7 +197,7 @@
+ sub status_inc {
+     my ($r) = @_;
+ 
+-    my $uri = $r->uri;
++    my $uri = $r->location;
+     my @retval = (
+         '<table border="1">',
+         "<tr>", 
+@@ -285,7 +285,7 @@
+     my ($r) = @_;
+ 
+     local $_;
+-    my $uri = $r->uri;
++    my $uri = $r->location;
+     my $cache = __PACKAGE__->registry_cache;
+ 
+     my @retval = "<h2>Compiled registry scripts grouped by their handler</h2>";
+@@ -760,7 +760,7 @@
+     my ($self, $package, $r) = @_;
+ 
+     my @m = qw(<table>);
+-    my $uri = $r->uri;
++    my $uri = $r->location;
+     my $is_main = $package eq "main";
+ 
+     my $do_dump = has($r, "dumper");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_perl/patches/Reload.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,571 @@
+--- /dev/null	Fri Oct 16 06:02:02 2009
++++ mod_perl-2.0.4/lib/Apache2/Reload.pm	Sun Nov 19 15:31:40 2006
+@@ -0,0 +1,185 @@
++# Licensed to the Apache Software Foundation (ASF) under one or more
++# contributor license agreements.  See the NOTICE file distributed with
++# this work for additional information regarding copyright ownership.
++# The ASF licenses this file to You under the Apache License, Version 2.0
++# (the "License"); you may not use this file except in compliance with
++# the License.  You may obtain a copy of the License at
++#
++#     http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++#
++package Apache2::Reload;
++
++use strict;
++use warnings FATAL => 'all';
++
++use mod_perl2;
++
++our $VERSION = '0.09';
++
++use Apache2::Const -compile => qw(OK);
++
++use Apache2::Connection;
++use Apache2::ServerUtil;
++use Apache2::RequestUtil;
++
++use ModPerl::Util ();
++
++use vars qw(%INCS %Stat $TouchTime);
++
++%Stat = ($INC{"Apache2/Reload.pm"} => time);
++
++$TouchTime = time;
++
++sub import {
++    my $class = shift;
++    my ($package, $file) = (caller)[0,1];
++
++    $class->register_module($package, $file);
++}
++
++sub package_to_module {
++    my $package = shift;
++    $package =~ s/::/\//g;
++    $package .= ".pm";
++    return $package;
++}
++
++sub module_to_package {
++    my $module = shift;
++    $module =~ s/\//::/g;
++    $module =~ s/\.pm$//g;
++    return $module;
++}
++
++sub register_module {
++    my ($class, $package, $file) = @_;
++    my $module = package_to_module($package);
++
++    if ($file) {
++        $INCS{$module} = $file;
++    }
++    else {
++        $file = $INC{$module};
++        return unless $file;
++        $INCS{$module} = $file;
++    }
++}
++
++sub unregister_module {
++    my ($class, $package) = @_;
++    my $module = package_to_module($package);
++    delete $INCS{$module};
++}
++
++# the first argument is:
++# $c if invoked as 'PerlPreConnectionHandler'
++# $r if invoked as 'PerlInitHandler'
++sub handler {
++    my $o = shift;
++    $o = $o->base_server if ref($o) eq 'Apache2::Connection';
++
++    my $DEBUG = ref($o) && (lc($o->dir_config("ReloadDebug") || '') eq 'on');
++
++    my $TouchFile = ref($o) && $o->dir_config("ReloadTouchFile");
++
++    my $ConstantRedefineWarnings = ref($o) && 
++        (lc($o->dir_config("ReloadConstantRedefineWarnings") || '') eq 'off') 
++            ? 0 : 1;
++
++    my $TouchModules;
++
++    if ($TouchFile) {
++        warn "Checking mtime of $TouchFile\n" if $DEBUG;
++        my $touch_mtime = (stat $TouchFile)[9] || return Apache2::Const::OK;
++        return Apache2::Const::OK unless $touch_mtime > $TouchTime;
++        $TouchTime = $touch_mtime;
++        open my $fh, $TouchFile or die "Can't open '$TouchFile': $!";
++        $TouchModules = <$fh>;
++        chomp $TouchModules if $TouchModules;
++    }
++
++    if (ref($o) && (lc($o->dir_config("ReloadAll") || 'on') eq 'on')) {
++        *Apache2::Reload::INCS = \%INC;
++    }
++    else {
++        *Apache2::Reload::INCS = \%INCS;
++        my $ExtraList = 
++                $TouchModules || 
++                (ref($o) && $o->dir_config("ReloadModules")) || 
++                '';
++        my @extra = split /\s+/, $ExtraList;
++        foreach (@extra) {
++            if (/(.*)::\*$/) {
++                my $prefix = $1;
++                $prefix =~ s/::/\//g;
++                foreach my $match (keys %INC) {
++                    if ($match =~ /^\Q$prefix\E/) {
++                        $Apache2::Reload::INCS{$match} = $INC{$match};
++                    }
++                }
++            }
++            else {
++                Apache2::Reload->register_module($_);
++            }
++        }
++    }
++
++    my $ReloadDirs = ref($o) && $o->dir_config("ReloadDirectories");
++    my @watch_dirs = split(/\s+/, $ReloadDirs||'');
++    
++    my @changed;
++    foreach my $key (sort { $a cmp $b } keys %Apache2::Reload::INCS) {
++        my $file = $Apache2::Reload::INCS{$key};
++
++        next unless defined $file;
++        next if @watch_dirs && !grep { $file =~ /^$_/ } @watch_dirs;
++        warn "Apache2::Reload: Checking mtime of $key\n" if $DEBUG;
++
++        my $mtime = (stat $file)[9];
++
++        unless (defined($mtime) && $mtime) {
++            for (@INC) {
++                $mtime = (stat "$_/$file")[9];
++                last if defined($mtime) && $mtime;
++            }
++        }
++
++        warn("Apache2::Reload: Can't locate $file\n"), next
++            unless defined $mtime and $mtime;
++
++        unless (defined $Stat{$file}) {
++            $Stat{$file} = $^T;
++        }
++
++        if ($mtime > $Stat{$file}) {
++            push @changed, $key;
++        }
++        $Stat{$file} = $mtime;
++    }
++    
++    #First, let's unload all changed modules
++    foreach my $module (@changed) {
++        my $package = module_to_package($module);
++        ModPerl::Util::unload_package($package);
++    }
++    
++    #Then, let's reload them all, so that module dependencies can satisfy
++    #themselves in the correct order.
++    foreach my $module (@changed) {
++        my $package = module_to_package($module);
++        require $module;
++        warn("Apache2::Reload: process $$ reloading $package from $module\n")
++            if $DEBUG;
++    }
++
++    return Apache2::Const::OK;
++}
++
++1;
++__END__
+--- /dev/null	Fri Oct 16 06:02:02 2009
++++ mod_perl-2.0.4/docs/api/Apache2/Reload.pod	Sun Nov 19 15:32:13 2006
+@@ -1,0 +1,380 @@
++=head1 NAME
++
++Apache2::Reload - Reload Perl Modules when Changed on Disk
++
++=head1 Synopsis
++
++  # Monitor and reload all modules in %INC:
++  # httpd.conf:
++  PerlModule Apache2::Reload
++  PerlInitHandler Apache2::Reload
++
++  # when working with protocols and connection filters
++  # PerlPreConnectionHandler Apache2::Reload
++
++  # Reload groups of modules:
++  # httpd.conf:
++  PerlModule Apache2::Reload
++  PerlInitHandler Apache2::Reload
++  PerlSetVar ReloadAll Off
++  PerlSetVar ReloadModules "ModPerl::* Apache2::*"
++  #PerlSetVar ReloadDebug On
++  
++  # Reload a single module from within itself:
++  package My::Apache2::Module;
++  use Apache2::Reload;
++  sub handler { ... }
++  1;
++
++=head1 Description
++
++C<Apache2::Reload> reloads modules that change on the disk.
++
++When Perl pulls a file via C<require>, it stores the filename in the
++global hash C<%INC>.  The next time Perl tries to C<require> the same
++file, it sees the file in C<%INC> and does not reload from disk.  This
++module's handler can be configured to iterate over the modules in
++C<%INC> and reload those that have changed on disk or only specific
++modules that have registered themselves with C<Apache2::Reload>. It can
++also do the check for modified modules, when a special touch-file has
++been modified.
++
++Note that C<Apache2::Reload> operates on the current context of
++C<@INC>.  Which means, when called as a C<Perl*Handler> it will not
++see C<@INC> paths added or removed by C<ModPerl::Registry> scripts, as
++the value of C<@INC> is saved on server startup and restored to that
++value after each request.  In other words, if you want
++C<Apache2::Reload> to work with modules that live in custom C<@INC>
++paths, you should modify C<@INC> when the server is started.  Besides,
++C<'use lib'> in the startup script, you can also set the C<PERL5LIB>
++variable in the httpd's environment to include any non-standard 'lib'
++directories that you choose.  For example, to accomplish that you can
++include a line:
++
++  PERL5LIB=/home/httpd/perl/extra; export PERL5LIB
++
++in the script that starts Apache. Alternatively, you can set this
++environment variable in I<httpd.conf>:
++
++  PerlSetEnv PERL5LIB /home/httpd/perl/extra
++
++=head2 Monitor All Modules in C<%INC>
++
++To monitor and reload all modules in C<%INC> at the beginning of
++request's processing, simply add the following configuration to your
++I<httpd.conf>:
++
++  PerlModule Apache2::Reload
++  PerlInitHandler Apache2::Reload
++
++When working with connection filters and protocol modules
++C<Apache2::Reload> should be invoked in the pre_connection stage:
++
++  PerlPreConnectionHandler Apache2::Reload
++
++See also the discussion on
++C<L<PerlPreConnectionHandler|docs::2.0::user::handlers::protocols/PerlPreConnectionHandler>>.
++
++=head2 Register Modules Implicitly
++
++To only reload modules that have registered with C<Apache2::Reload>,
++add the following to the I<httpd.conf>:
++
++  PerlModule Apache2::Reload
++  PerlInitHandler Apache2::Reload
++  PerlSetVar ReloadAll Off
++  # ReloadAll defaults to On
++
++Then any modules with the line:
++
++  use Apache2::Reload;
++
++Will be reloaded when they change.
++
++=head2 Register Modules Explicitly
++
++You can also register modules explicitly in your I<httpd.conf> file
++that you want to be reloaded on change:
++
++  PerlModule Apache2::Reload
++  PerlInitHandler Apache2::Reload
++  PerlSetVar ReloadAll Off
++  PerlSetVar ReloadModules "My::Foo My::Bar Foo::Bar::Test"
++
++Note that these are split on whitespace, but the module list B<must>
++be in quotes, otherwise Apache tries to parse the parameter list.
++
++The C<*> wild character can be used to register groups of files under
++the same namespace. For example the setting:
++
++  PerlSetVar ReloadModules "ModPerl::* Apache2::*"
++
++will monitor all modules under the namespaces C<ModPerl::> and
++C<Apache2::>.
++
++=head2 Monitor Only Certain Sub Directories
++
++To reload modules only in certain directories (and their
++subdirectories) add the following to the I<httpd.conf>:
++
++  PerlModule Apache2::Reload
++  PerlInitHandler Apache2::Reload
++  PerlSetVar ReloadDirectories "/tmp/project1 /tmp/project2"
++
++You can further narrow the list of modules to be reloaded from the
++chosen directories with C<ReloadModules> as in:
++
++  PerlModule Apache2::Reload
++  PerlInitHandler Apache2::Reload
++  PerlSetVar ReloadDirectories "/tmp/project1 /tmp/project2"
++  PerlSetVar ReloadAll Off
++  PerlSetVar ReloadModules "MyApache2::*"
++
++In this configuration example only modules from the namespace
++C<MyApache2::> found in the directories I</tmp/project1/> and
++I</tmp/project2/> (and their subdirectories) will be reloaded.
++
++=head2 Special "Touch" File
++
++You can also declare a file, which when gets C<touch(1)>ed, causes the
++reloads to be performed. For example if you set:
++
++  PerlSetVar ReloadTouchFile /tmp/reload_modules
++
++and don't C<touch(1)> the file I</tmp/reload_modules>, the reloads
++won't happen until you go to the command line and type:
++
++  % touch /tmp/reload_modules
++
++When you do that, the modules that have been changed, will be
++magically reloaded on the next request. This option works with any
++mode described before.
++
++=head2 Unregistering a module
++
++In some cases, it might be necessary to explicitely stop reloading
++a module.
++
++  Apache2::Reload->unregister_module('Some::Module');
++
++But be carefull, since unregistering a module in this way will only
++do so for the current interpreter. This feature should be used with
++care.
++
++=head1 Performance Issues
++
++This module is perfectly suited for a development environment. Though
++it's possible that you would like to use it in a production
++environment, since with C<Apache2::Reload> you don't have to restart
++the server in order to reload changed modules during software
++updates. Though this convenience comes at a price:
++
++=over
++
++=item *
++
++If the "touch" file feature is used, C<Apache2::Reload> has to stat(2)
++the touch file on each request, which adds a slight but most likely
++insignificant overhead to response times. Otherwise C<Apache2::Reload>
++will stat(2) each registered module or even worse--all modules in
++C<%INC>, which will significantly slow everything down.
++
++=item *
++
++Once the child process reloads the modules, the memory used by these
++modules is not shared with the parent process anymore. Therefore the
++memory consumption may grow significantly.
++
++=back
++
++Therefore doing a full server stop and restart is probably a better
++solution.
++
++=head1 Debug
++
++If you aren't sure whether the modules that are supposed to be
++reloaded, are actually getting reloaded, turn the debug mode on:
++
++  PerlSetVar ReloadDebug On
++
++=head1 Caveats
++
++=head2 Problems With Reloading Modules Which Do Not Declare Their Package Name
++
++If you modify modules, which don't declare their C<package>, and rely on
++C<Apache2::Reload> to reload them, you may encounter problems: i.e.,
++it'll appear as if the module wasn't reloaded when in fact it
++was. This happens because when C<Apache2::Reload> C<require()>s such a
++module all the global symbols end up in the C<Apache2::Reload>
++namespace!  So the module does get reloaded and you see the compile
++time errors if there are any, but the symbols don't get imported to
++the right namespace. Therefore the old version of the code is running.
++
++
++=head2 Failing to Find a File to Reload
++
++C<Apache2::Reload> uses C<%INC> to find the files on the filesystem. If
++an entry for a certain filepath in C<%INC> is relative,
++C<Apache2::Reload> will use C<@INC> to try to resolve that relative
++path. Now remember that mod_perl freezes the value of C<@INC> at the
++server startup, and you can modify it only for the duration of one
++request when you need to load some module which is not in on of the
++C<@INC> directories. So a module gets loaded, and registered in
++C<%INC> with a relative path. Now when C<Apache2::Reload> tries to find
++that module to check whether it has been modified, it can't find since
++its directory is not in C<@INC>. So C<Apache2::Reload> will silently
++skip that module.
++
++You can enable the C<Debug|/Debug> mode to see what C<Apache2::Reload>
++does behind the scenes.
++
++
++
++=head2 Problems with Scripts Running with Registry Handlers that Cache the Code
++
++The following problem is relevant only to registry handlers that cache
++the compiled script. For example it concerns
++C<L<ModPerl::Registry|docs::2.0::api::ModPerl::Registry>> but not
++C<L<ModPerl::PerlRun|docs::2.0::api::ModPerl::PerlRun>>.
++
++=head3 The Problem
++
++Let's say that there is a module C<My::Utils>:
++
++  #file:My/Utils.pm
++  #----------------
++  package My::Utils;
++  BEGIN { warn __PACKAGE__ , " was reloaded\n" }
++  use base qw(Exporter);
++  @EXPORT = qw(colour);
++  sub colour { "white" }
++  1;
++
++And a registry script F<test.pl>:
++
++  #file:test.pl
++  #------------
++  use My::Utils;
++  print "Content-type: text/plain\n\n";
++  print "the color is " . colour();
++
++Assuming that the server is running in a single mode, we request the
++script for the first time and we get the response:
++
++  the color is white
++
++Now we change F<My/Utils.pm>:
++
++  -  sub colour { "white" }
++  +  sub colour { "red" }
++
++And issue the request again. C<Apache2::Reload> does its job and we can
++see that C<My::Utils> was reloaded (look in the I<error_log>
++file). However the script still returns:
++
++  the color is white
++
++=head3 The Explanation
++
++Even though F<My/Utils.pm> was reloaded, C<ModPerl::Registry>'s cached
++code won't run 'C<use My::Utils;>' again (since it happens only once,
++i.e. during the compile time). Therefore the script doesn't know that
++the subroutine reference has been changed.
++
++This is easy to verify. Let's change the script to be:
++
++  #file:test.pl
++  #------------
++  use My::Utils;
++  print "Content-type: text/plain\n\n";
++  my $sub_int = \&colour;
++  my $sub_ext = \&My::Utils::colour;
++  print "int $sub_int\n";
++  print "ext $sub_ext\n";
++
++Issue a request, you will see something similar to:
++
++  int CODE(0x8510af8)
++  ext CODE(0x8510af8)
++
++As you can see both point to the same CODE reference (meaning that
++it's the same symbol). After modifying F<My/Utils.pm> again:
++
++  -  sub colour { "red" }
++  +  sub colour { "blue" }
++
++and calling the script on the secondnd time, we get:
++
++  int CODE(0x8510af8)
++  ext CODE(0x851112c)
++
++You can see that the internal CODE reference is not the same as the
++external one.
++
++=head3 The Solution
++
++There are two solutions to this problem:
++
++Solution 1: replace C<use()> with an explicit C<require()> +
++C<import()>.
++
++ - use My::Utils;
++ + require My::Utils; My::Utils->import();
++
++now the changed functions will be reimported on every request.
++
++Solution 2: remember to touch the script itself every time you change
++the module that it requires.
++
++=head1 Threaded MPM and Multiple Perl Interpreters
++
++If you use C<Apache2::Reload> with a threaded MPM and multiple Perl
++interpreters, the modules will be reloaded by each interpreter as they
++are used, not every interpreters at once.  Similar to mod_perl 1.0
++where each child has its own Perl interpreter, the modules are
++reloaded as each child is hit with a request.
++
++If a module is loaded at startup, the syntax tree of each subroutine
++is shared between interpreters (big win), but each subroutine has its
++own padlist (where lexical my variables are stored).  Once
++C<Apache2::Reload> reloads a module, this sharing goes away and each
++Perl interpreter will have its own copy of the syntax tree for the
++reloaded subroutines.
++
++
++=head1 Pseudo-hashes
++
++The short summary of this is: Don't use pseudo-hashes. They are
++deprecated since Perl 5.8 and are removed in 5.9.
++
++Use an array with constant indexes. Its faster in the general case,
++its more guaranteed, and generally, it works.
++
++The long summary is that some work has been done to get this module
++working with modules that use pseudo-hashes, but it's still broken in
++the case of a single module that contains multiple packages that all
++use pseudo-hashes.
++
++So don't do that.
++
++
++
++
++=head1 Copyright
++
++mod_perl 2.0 and its core modules are copyrighted under
++The Apache Software License, Version 2.0.
++
++
++=head1 Authors
++
++Matt Sergeant, [email protected]
++
++Stas Bekman (porting to mod_perl 2.0)
++
++A few concepts borrowed from C<Stonehenge::Reload> by Randal Schwartz
++and C<Apache::StatINC> (mod_perl 1.x) by Doug MacEachern and Ask
++Bjoern Hansen.
++
++=cut
++
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_perl/patches/TestConfigParse.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,14 @@
+--- mod_perl-2.0.4/Apache-Test/lib/Apache/TestConfigParse.pm	Sun Nov 11 21:34:46 2007
++++ mod_perl-2.0.4/Apache-Test/lib/Apache/TestConfigParse.pm	Thu May 19 05:35:01 2011
+@@ -211,6 +211,11 @@
+     for my $args (@{ $c->{$directive} }) {
+         my $modname = $args->[0];
+         my $file = $self->server_file_rel2abs($args->[1]);
++	
++       unless ($file !~ m/\/64\//) {
++            debug "$file is 64 bit module (we don't want it)";
++            next;
++        }
+ 
+         unless (-e $file) {
+             debug "$file does not exist, skipping LoadModule";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_perl/patches/bug38084.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,12 @@
+--- mod_perl-2.0.4/lib/Apache2/SizeLimit.pm.orig	Mon Nov 23 02:17:25 2009
++++ mod_perl-2.0.4/lib/Apache2/SizeLimit.pm	Mon Nov 23 02:21:39 2009
+@@ -52,7 +52,8 @@
+         if Apache2::MPM->is_threaded();
+ 
+     # decide at compile time how to check for a process' memory size.
+-    if (SOLARIS && $Config{'osvers'} >= 2.6) {
++    my ($major,$minor) = split(/\./, $Config{'osvers'});
++    if (SOLARIS && (($major > 2) || ($major == 2 && $minor >= 6))) {
+ 
+         $HOW_BIG_IS_IT = \&solaris_2_6_size_check;
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_perl/perl.conf	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,34 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+# 
+# Cause Perl to work with Apache pre-fork MPM(32-bit) only.
+# Load this module only if not loaded already
+#
+<IfDefine !64bit>
+<IfModule prefork.c>
+<IfModule !mod_perl.c>
+LoadModule perl_module libexec/mod_perl.so
+</IfModule>
+</IfModule>
+</IfDefine>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_proxy_html/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,51 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		mod_proxy_html
+COMPONENT_VERSION=	3.1.1
+COMPONENT_SRC=		$(COMPONENT_NAME)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-$(COMPONENT_VERSION).tar.bz2
+COMPONENT_ARCHIVE_HASH=	sha1:d36398151994f308ce36bacab09beb8165bf01a7
+# Original archive from community didn't contain name in its version.
+# Therefore we created special Userland copy with version info.
+COMPONENT_ARCHIVE_URL=	http://apache.webthing.com/mod_proxy_html/$(COMPONENT_ARCHIVE)
+
+include ../../../make-rules/prep.mk
+include ../../../make-rules/justmake.mk
+include ../../../make-rules/ips.mk
+
+APACHE_USR_PREFIX=/usr/apache2/2.2
+
+$(BUILD_DIR_32)/.built: COMPONENT_BUILD_ARGS +=	APXS=$(APACHE_USR_PREFIX)/bin/apxs
+$(BUILD_DIR_64)/.built: COMPONENT_BUILD_ARGS +=	APXS=$(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs
+
+PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+
+build: $(BUILD_32_and_64)
+
+test: $(NO_TESTS)
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include ../../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_proxy_html/apache-proxy_html.license	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,350 @@
+Oracle elects to use only the GNU Lesser General Public License version
+2.1 (LGPL)/GNU General Public License version 2 (GPL) for any software
+where a choice of LGPL/GPL license versions are made available with the
+language indicating that LGPLv2.1/GPLv2 or any later version may be
+used, or where a choice of which version of the LGPL/GPL is applied is
+unspecified.  Unless specifically stated otherwise, where a choice
+exists between another license and either the GPL or the LGPL, Oracle
+chooses the other license.
+====================================================================
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                          59 Temple Place - Suite 330, Boston, MA
+                          02111-1307, USA.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_proxy_html/apache-proxy_html.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,58 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22/module/apache-proxy_html@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="Proxy HTML plugin for Apache Web Server V2.2"
+set name=pkg.description \
+    value="Proxy HTML plugin for Apache Web Server Version 2.2"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://apache.webthing.com/mod_proxy_html/"
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2009/553
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license apache-proxy_html.license license="GPLv2"
+
+dir path=etc
+dir path=etc/apache2
+dir path=etc/apache2/2.2
+dir path=etc/apache2/2.2/samples-conf.d
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/libexec
+dir path=usr/apache2/2.2/libexec/$(MACH64)
+file proxy_html.conf path=etc/apache2/2.2/samples-conf.d/proxy_html.conf
+file build/$(MACH32)/.libs/mod_proxy_html.so path=usr/apache2/2.2/libexec/mod_proxy_html.so
+file build/$(MACH64)/.libs/mod_proxy_html.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_html.so
+
+legacy	pkg=SUNWapch22m-proxy-html \
+	name="Proxy HTML plugin for Apache Web Server V2.2" \
+	desc="Proxy HTML plugin for Apache Web Server Version 2.2 (3.1.1)"
+
+legacy	pkg=SUNWapch22r-proxy-html \
+	name="Proxy HTML plugin for Apache Web Server V2.2" \
+	desc="Proxy HTML plugin for Apache Web Server Version 2.2 (3.1.1)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_proxy_html/apache-xml2enc.license	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,42 @@
+Oracle elects to use only the the Apache License Version 2.0 for this
+component.
+====================================================
+       Copyright (c) 2007-8, WebThing Ltd
+       Author: Nick Kew <[email protected]>
+                         
+This work is available to you under EITHER the Apache License Version 2.0
+OR the GNU General Poblic License Version 2.  It is your choice which
+of these licenses you accept, but if you wish to copy or use this
+work, you MUST accept one of these licenses and abide by its terms.
+                         
+                         
+                         
+OPTION 1: Apache License
+WebThing licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+                         
+    http://www.apache.org/licenses/LICENSE-2.0
+                         
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+                         
+                         
+                         
+OPTION 2: GNU General Public License
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License  Version 2,
+as published by the Free Software Foundation.
+                         
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+                         
+You can obtain a copy of the GNU General Poblic License Version 2
+from http://www.gnu.org/licenses/old-licenses/gpl-2.0.html or
+http://apache.webthing.com/COPYING.txt
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_proxy_html/apache-xml2enc.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,51 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22/module/[email protected],$(BUILD_VERSION)
+set name=pkg.summary \
+    value="xml2nec plugin for Apache Web Server V2.2"
+set name=pkg.description \
+    value="xml2enc plugin for Apache Web Server Version 2.2"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://apache.webthing.com/mod_xml2enc/"
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2009/553
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license apache-xml2enc.license license="Apache v2.0"
+
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/include
+dir path=usr/apache2/2.2/libexec
+dir path=usr/apache2/2.2/libexec/$(MACH64)
+file mod_xml2enc.h path=usr/apache2/2.2/include/mod_xml2enc.h
+file build/$(MACH32)/.libs/mod_xml2enc.so path=usr/apache2/2.2/libexec/mod_xml2enc.so
+file build/$(MACH64)/.libs/mod_xml2enc.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_xml2enc.so
+
+legacy	pkg=SUNWapch22m-xml2enc \
+	name="xml2nec plugin for Apache Web Server V2.2" \
+	desc="xml2enc plugin for Apache Web Server Version 2.2 (1.0)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_proxy_html/patches/conf.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,56 @@
+--- mod_proxy_html/proxy_html.conf	Mon Oct  5 15:50:28 2009
++++ mod_proxy_html/proxy_html.conf	Tue Mar 30 11:49:53 2010
+@@ -1,21 +1,21 @@
+-# Configuration example.
+-#
+-# First, to load the module with its prerequisites.  Note: mod_xml2enc
+-# is not always necessary, but without it mod_proxy_html is likely to
+-# mangle pages in encodings other than ASCII or Unicode (utf-8).
+-#
+-# For Unix-family systems:
+-# LoadFile	/usr/lib/libxml2.so
+-# LoadModule	proxy_html_module	modules/mod_proxy_html.so
+-# LoadModule	xml2enc_module		modules/mod_xml2enc.so
+-#
+-# For Windows (I don't know if there's a standard path for the libraries)
+-# LoadFile	C:/path/zlib.dll
+-# LoadFile	C:/path/iconv.dll
+-# LoadFile	C:/path/libxml2.dll
+-# LoadModule	proxy_html_module	modules/mod_proxy_html.so
+-# LoadModule	xml2enc_module		modules/mod_xml2enc.so
+-# 
++
++<IfDefine 64bit>
++LoadFile	/usr/lib/64/libxml2.so.2
++
++LoadModule xml2enc_module libexec/64/mod_xml2enc.so
++LoadModule proxy_html_module libexec/64/mod_proxy_html.so
++
++</IfDefine>
++<IfDefine !64bit>
++LoadFile	/usr/lib/libxml2.so.2
++
++LoadModule xml2enc_module libexec/mod_xml2enc.so
++LoadModule proxy_html_module libexec/mod_proxy_html.so
++</IfDefine>
++
++<IfModule mod_proxy_html.c>
++
++
+ # All knowledge of HTML links has been removed from the mod_proxy_html
+ # code itself, and is instead read from httpd.conf (or included file)
+ # at server startup.  So you MUST declare it.  This will normally be
+@@ -60,7 +60,10 @@
+ #
+ # ProxyHTMLLinks	myelement	myattr otherattr
+ #
+-# See the documentation at
++# Also at top level in httpd.conf, you can declare charset aliases.
++# This is the most efficient way to support encodings that libxml2
++# doesn't natively support.  See the documentation at
+ # http://apache.webthing.com/mod_proxy_html/
+-# and the tutorial at
+-# http://www.apachetutor.org/admin/reverseproxies
++
++</IfModule>
++
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_proxy_html/patches/makefile.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,18 @@
+--- /dev/null	2011-05-10 16:41:00.000000000 -0700
++++ mod_proxy_html/Makefile	2011-05-10 16:39:23.932152964 -0700
+@@ -0,0 +1,15 @@
++APXS=apxs
++
++INCLUDES="-I/usr/include/libxml2 -I."
++
++all: .libs/mod_proxy_html.so .libs/mod_xml2enc.so
++
++.libs/mod_proxy_html.so: mod_proxy_html.c
++	$(APXS) -c -o mod_proxy_html.so $(INCLUDES) mod_proxy_html.c
++
++.libs/mod_xml2enc.so: mod_xml2enc.c
++	$(APXS) -c -o mod_xml2enc.so $(INCLUDES) mod_xml2enc.c
++
++clean:
++	-rm -f *.o *.so *.lo *.la *.slo
++	-rm -rf .libs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_security2/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,63 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		modsecurity-apache
+COMPONENT_VERSION=	2.5.9
+COMPONENT_SRC=		$(COMPONENT_NAME)_$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	sha1:875919332a918956371fe8e2f7e46d88081857cf
+COMPONENT_ARCHIVE_URL=	http://www.modsecurity.org/download/$(COMPONENT_ARCHIVE)
+
+include ../../../make-rules/prep.mk
+include ../../../make-rules/configure.mk
+include ../../../make-rules/ips.mk
+
+APACHE_USR_PREFIX=/usr/apache2/2.2
+
+APXS.32=	$(APACHE_USR_PREFIX)/bin/apxs
+APXS.64=	$(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs
+
+CONFIGURE_OPTIONS +=	LTFLAGS="--silent --tag=CC"
+CONFIGURE_OPTIONS += --with-apxs=$(APXS.$(BITS))
+CONFIGURE_OPTIONS += --with-apr=`$(APXS.$(BITS)) -q APR_CONFIG`
+CONFIGURE_OPTIONS += --with-apu=`$(APXS.$(BITS)) -q APU_CONFIG`
+
+# Need to get right version of C compiler and GNU sed first.
+PATH=$(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin
+
+# Some patches need configure script re-creation.
+COMPONENT_PREP_ACTION = (cd $(@D)/apache2; autoconf)
+
+CONFIGURE_SCRIPT = $(SOURCE_DIR)/apache2/configure
+
+# Header files are missing during build without cloning.
+COMPONENT_PRE_BUILD_ACTION += ($(CLONEY) $(SOURCE_DIR)/apache2 $(@D));
+
+build: $(BUILD_32_and_64)
+
+test: $(NO_TESTS)
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include ../../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_security2/apache-security.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,59 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22/module/apache-security@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="Mod Security plugin for Apache Web Server V2.2"
+set name=pkg.description \
+    value="Mod Security plugin for Apache Web Server Version 2.2"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://www.modsecurity.org/"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/PSARC/2008/090
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license security2.license license="GPLv2"
+
+dir path=etc
+dir path=etc/apache2
+dir path=etc/apache2/2.2
+dir path=etc/apache2/2.2/samples-conf.d
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/libexec
+dir path=usr/apache2/2.2/libexec/$(MACH64)
+file security2.conf path=etc/apache2/2.2/samples-conf.d/security2.conf
+file build/$(MACH32)/.libs/mod_security2.so path=usr/apache2/2.2/libexec/mod_security2.so
+file build/$(MACH64)/.libs/mod_security2.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_security2.so
+
+legacy	pkg=SUNWapch22m-security \
+	name="Mod Security plugin (2.5.9) for Apache Web Server Version 2.2" \
+	desc="Mod Security plugin (2.5.9) for Apache Web Server Version 2.2"
+
+legacy	pkg=SUNWapch22r-security \
+	name="Mod Security plugin (2.5.9) for Apache Web Server Version 2.2" \
+	desc="Mod Security plugin (2.5.9) for Apache Web Server Version 2.2"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_security2/patches/configure.in.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,28 @@
+--- modsecurity-apache_2.5.9/apache2/configure.in.orig	Fri May  6 03:57:25 2011
++++ modsecurity-apache_2.5.9/apache2/configure.in	Fri May  6 03:59:43 2011
+@@ -302,9 +302,9 @@
+ ### Build *EXTRA_CFLAGS vars
+ 
+ if test -n "$debug_mem"; then
+-  EXTRA_CFLAGS="-O0 -g -Wall"
++  EXTRA_CFLAGS="-O0 -g"
+ else
+-  EXTRA_CFLAGS="-O2 -g -Wall $strict_compile"
++  EXTRA_CFLAGS="-O2 -g $strict_compile"
+ fi
+ MODSEC_EXTRA_CFLAGS="$debug_conf $debug_cache $debug_acmp $debug_mem $perf_meas $modsec_api"
+ 
+@@ -311,11 +311,11 @@
+ APXS_WRAPPER=build/apxs-wrapper
+ APXS_EXTRA_CFLAGS=""
+ for f in $EXTRA_CFLAGS; do
+-    APXS_EXTRA_CFLAGS="$APXS_EXTRA_CFLAGS -Wc,$f"
++    APXS_EXTRA_CFLAGS="$APXS_EXTRA_CFLAGS"
+ done;
+ MODSEC_APXS_EXTRA_CFLAGS=""
+ for f in $MODSEC_EXTRA_CFLAGS; do
+-    MODSEC_APXS_EXTRA_CFLAGS="$MODSEC_APXS_EXTRA_CFLAGS -Wc,$f"
++    MODSEC_APXS_EXTRA_CFLAGS="$MODSEC_APXS_EXTRA_CFLAGS"
+ done;
+ 
+ ### Substitute the vars
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_security2/security2.conf	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,59 @@
+
+<IfDefine 64bit>
+LoadModule security2_module libexec/64/mod_security2.so
+</IfDefine>
+<IfDefine !64bit>
+LoadModule security2_module libexec/mod_security2.so
+</IfDefine>
+
+<IfModule mod_security2.c>
+
+# Basic configuration options
+SecRuleEngine On
+SecRequestBodyAccess On
+SecResponseBodyAccess Off
+
+# Handling of file uploads
+# TODO Choose a folder private to Apache.
+# SecUploadDir /opt/apache-frontend/tmp/
+SecUploadKeepFiles Off
+
+# Debug log
+SecDebugLog /var/apache2/2.2/logs/modsec_debug.log
+SecDebugLogLevel 0
+
+# Serial audit log
+SecAuditEngine RelevantOnly
+SecAuditLogRelevantStatus ^5
+SecAuditLogParts ABIFHZ
+SecAuditLogType Serial
+SecAuditLog /var/apache2/2.2/logs/modsec_audit.log
+
+# Maximum request body size we will
+# accept for buffering
+SecRequestBodyLimit 131072
+
+# Store up to 128 KB in memory
+SecRequestBodyInMemoryLimit 131072
+
+# Buffer response bodies of up to
+# 512 KB in length
+SecResponseBodyLimit 524288
+
+# Verify that we've correctly processed the request body.
+# As a rule of thumb, when failing to process a request body
+# you should reject the request when deployed in blocking mode
+# or log a high-severity alert when deployed in detection-only mode.
+SecRule REQBODY_PROCESSOR_ERROR "!@eq 0" "phase:2,t:none,log,deny,msg:'Failed to parse request body.',severity:2"
+
+# By default be strict with what we accept in the multipart/form-data
+# request body. If the rule below proves to be too strict for your
+# environment consider changing it to detection-only. You are encouraged
+# _not_ to remove it altogether.
+SecRule MULTIPART_STRICT_ERROR "!@eq 0" "phase:2,t:none,log,deny,msg:'Multipart request body failed strict validation: PE %{REQBODY_PROCESSOR_ERROR}, BQ %{MULTIPART_BOUNDARY_QUOTED}, BW %{MULTIPART_BOUNDARY_WHITESPACE}, DB %{MULTIPART_DATA_BEFORE}, DA %{MULTIPART_DATA_AFTER}, HF %{MULTIPART_HEADER_FOLDING}, LF %{MULTIPART_LF_LINE}, SM %{MULTIPART_SEMICOLON_MISSING}'"
+
+# Did we see anything that might be a boundary?
+SecRule MULTIPART_UNMATCHED_BOUNDARY "!@eq 0" "phase:2,t:none,log,deny,msg:'Multipart parser detected a possible unmatched boundary.'"
+
+SecRule REQUEST_URI "sfw" "deny"
+</IfModule>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2-modules/mod_security2/security2.license	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,291 @@
+Oracle elects to use only the GNU Lesser General Public License version
+2.1 (LGPL)/GNU General Public License version 2 (GPL) for any software
+where a choice of LGPL/GPL license versions are made available with the
+language indicating that LGPLv2.1/GPLv2 or any later version may be
+used, or where a choice of which version of the LGPL/GPL is applied is
+unspecified.  Unless specifically stated otherwise, where a choice
+exists between another license and either the GPL or the LGPL, Oracle
+chooses the other license.
+====================================================================
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,117 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		httpd
+COMPONENT_VERSION=	2.2.16
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	sha1:6937bd8b127541d6700b870681120b2b4cc79ba9
+COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/httpd/$(COMPONENT_ARCHIVE)
+
+CONFIGURE_DEFAULT_DIRS=no
+
+include ../../make-rules/prep.mk
+include ../../make-rules/configure.mk
+include ../../make-rules/ips.mk
+
+PATCH_LEVEL=0
+
+# Some patches need configure script re-creation.
+COMPONENT_PREP_ACTION +=($(CP) mod_sed/* $(@D)/modules/filters);
+COMPONENT_PREP_ACTION +=($(CP) mod_auth_gss/mod_auth_gss.c $(@D)/modules/aaa);
+COMPONENT_PREP_ACTION +=($(CP) mod_auth_gss/mod_auth_gss.html $(@D)/docs/manual/mod);
+COMPONENT_PREP_ACTION +=(cd $(@D); autoreconf);
+
+VARIANT_PREFORK =	$(BUILD_DIR)/prefork
+VARIANT_WORKER =	$(BUILD_DIR)/worker
+
+VARIANTS = $(VARIANT_WORKER) $(VARIANT_PREFORK)
+
+BUILD_32 = $(VARIANTS:%=%/$(MACH32)/.built)
+BUILD_64 = $(VARIANTS:%=%/$(MACH64)/.built)
+
+INSTALL_32 = $(VARIANTS:%=%/$(MACH32)/.installed)
+INSTALL_64 = $(VARIANTS:%=%/$(MACH64)/.installed)
+
+$(VARIANT_PREFORK)/$(MACH64)/.configured: BITS=64
+$(VARIANT_WORKER)/$(MACH64)/.configured:  BITS=64
+
+$(VARIANT_PREFORK)/%/.configured: CONFIGURE_OPTIONS += --with-mpm=prefork
+$(VARIANT_WORKER)/%/.configured:  CONFIGURE_OPTIONS += --with-mpm=worker
+
+# pipefail wouldn't allow APR-util version check
+CONFIGURE_ENV += SHELLOPTS=
+
+CONFIGURE_PREFIX =	/usr/apache2/2.2
+
+CONFIGURE_OPTIONS +=	--enable-mods-shared=all
+CONFIGURE_OPTIONS +=	--enable-so
+CONFIGURE_OPTIONS +=	--enable-suexec
+CONFIGURE_OPTIONS +=	--with-suexec-caller=webservd
+CONFIGURE_OPTIONS +=	--enable-proxy
+CONFIGURE_OPTIONS +=	--enable-proxy-connect
+CONFIGURE_OPTIONS +=	--enable-proxy-ftp
+CONFIGURE_OPTIONS +=	--enable-proxy-http
+CONFIGURE_OPTIONS +=	--enable-proxy-ajp
+CONFIGURE_OPTIONS +=	--enable-proxy-balancer
+CONFIGURE_OPTIONS +=	--enable-cache
+CONFIGURE_OPTIONS +=	--enable-file-cache
+CONFIGURE_OPTIONS +=	--enable-disk-cache
+CONFIGURE_OPTIONS +=	--enable-mem-cache
+CONFIGURE_OPTIONS +=	--enable-deflate
+CONFIGURE_OPTIONS +=	--enable-cgid
+CONFIGURE_OPTIONS +=	--enable-cgi
+CONFIGURE_OPTIONS +=	--enable-authnz-ldap
+CONFIGURE_OPTIONS +=	--enable-ldap
+CONFIGURE_OPTIONS +=	--enable-ssl
+CONFIGURE_OPTIONS +=	--enable-exception-hook
+CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS) -DSSL_EXPERIMENTAL -DSSL_ENGINE"
+CONFIGURE_OPTIONS +=	LTFLAGS="--silent --tag=CC"
+CONFIGURE_OPTIONS.32 +=	--enable-layout=Solaris-Apache2
+CONFIGURE_OPTIONS.64 +=	--enable-layout=Solaris-Apache2-$(MACH64)
+CONFIGURE_OPTIONS.32 +=	--with-apr=/usr/apr/1.3/bin/apr-1-config
+CONFIGURE_OPTIONS.64 +=	--with-apr=/usr/apr/1.3/bin/$(MACH64)/apr-1-config
+CONFIGURE_OPTIONS.32 +=	--with-apr-util=/usr/apr-util/1.3/bin/apu-1-config
+CONFIGURE_OPTIONS.64 +=	--with-apr-util=/usr/apr-util/1.3/bin/$(MACH64)/apu-1-config
+
+PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+
+build: $(BUILD_32_and_64)
+
+AP_CONFIG_LAYOUT_H=include/ap_config_layout.h
+
+install: $(INSTALL_32_and_64)
+	# Some files installed in proto area need to be fixed.
+	$(KSH93) Solaris/customization.sh $(PROTO_DIR) $(MACH64)
+	# Common header files for 32 and 64 bit variants are needed.
+	/usr/bin/diff -D __$(MACH64) \
+	  $(VARIANT_PREFORK)/$(MACH32)/$(AP_CONFIG_LAYOUT_H) \
+	  $(VARIANT_PREFORK)/$(MACH64)/$(AP_CONFIG_LAYOUT_H) \
+	  > $(PROTO_DIR)$(CONFIGURE_PREFIX)/$(AP_CONFIG_LAYOUT_H) ; true
+
+test: $(NO_TESTS)
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include ../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Solaris/apache2.1m.sunman	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,403 @@
+'\" te
+.\" Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+.TH apache2 1M "May 2011" "SunOS 5.11" "System Administration Commands"
+.SH NAME
+apache2 \- Apache HTTP Server Version 2 overview
+.SH SYNOPSIS
+.LP
+.nf
+\fBapache2\fR
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+Apache HTTP Server Version 2 (Apache 2) consists of a main  server daemon,
+loadable server modules,  some additional  support utilities, configuration
+files, and documentation.
+.sp
+.LP
+Both 32-bit and 64-bit versions of the servers are installed. It also
+includes two of the most popular MPMs - Prefork and Worker.
+.SH FILES
+.sp
+.LP
+The following files specify the installation locations for Apache 2:
+.LP
+Note : 
+.RS +4
+.TP
+.ie t \(bu
+.el o
+The string \fB[version]\fR should be expanded
+to \fB"MAJOR.MINOR"\fR. For example, \fB/usr/apache2/2.2/*\fR.
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fB[isainfo]\fR represents the output of \fBisainfo
+-n\fR on 64-bit platform.
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+To find the current version of Apache 2 installed on your
+machine, type the following command:
+.sp
+.in +2
+.nf
+$ /usr/apache2/[version]/bin/apachectl -v
+.fi
+.in -2
+.sp
+
+.RE
+.RE
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/etc/apache2/[version]/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains server configuration files. A newly-installed server
+contains a default \fBhttpd.conf\fR file. This is the main configuration file.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/etc/apache2/[version]/conf.d/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains additional server configuration files.
+.sp
+By default, server will load all the \fB\&.conf\fR files
+placed under this directory. It also has 2 additional \fB\&.load\fR configuration
+files-\fBmodules-32.load\fR and \fBmodules-64.load\fR which
+contain \fBLoadModule\fR directives for loading the 32 and 64-bit
+bundled Apache 2 modules respectively.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/etc/apache2/[version]/envvars\fR\fR
+.ad
+.sp .6
+.RS 4n
+File for specifying the environment settings which the server uses at
+startup. This is the user-editable version of the 
+/usr/apache2/[version]/bin/envvars file. 
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/etc/apache2/[version]/magic\fR\fR
+.ad
+.sp .6
+.RS 4n
+Magic data for \fBmod_mime_magic\fR Apache module as documented in the 
+.nf
+\fB/usr/apache2/2.2/manual/mod/mod_mime_magic.html\fR file.
+.fi
+.nf
+Editing this file is not recommended.
+.fi
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/etc/apache2/[version]/mime.types\fR\fR
+.ad
+.sp .6
+.RS 4n
+Default MIME types file. This file sets the default list of
+mappings from filename extensions to content types, changing this file is
+not recommended. Use the \fBAddType\fR directive instead.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/etc/apache2/[version]/original/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contents under this directory are delivered as-is from the
+apache distribution and these files are not meant to be read by the server.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/etc/apache2/[version]/sample-conf.d/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains sample \fB\&.conf\fR files. These are
+not included in the main configuration file. To use the sample file, copy
+the file to \fBconf.d\fR directory and modify as per the need.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/bin/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains the 32-bit httpd (Prefork MPM) and httpd.worker (Worker
+MPM) executable as well as other utility programs.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/bin/[isainfo]/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains the 64-bit httpd (Prefork MPM) and httpd.worker (Worker
+MPM) executables as well as other utility programs.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/bin/envvars\fR\fR
+\fB\fB/usr/apache2/[version]/bin/[isainfo]/envvars\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains the default environment settings that the server uses at startup.
+.nf
+Editing this file is not recommended. 
+.fi
+Instead, user should use /etc/apache2/[version]/envvars file.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/manual/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains the Apache 2 manual in HTML format.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/include/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains the Apache 2 header files, which are needed for building
+various optional server extensions with \fBapxs(8)\fR.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/libexec/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains 32-bit loadable modules (DSOs) supplied with the
+server.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/libexec/[isainfo]/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains 64-bit loadable modules (DSOs) supplied with the
+server.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/man/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains man pages for the server, utility programs, and \fBmod_perl\fR.
+.sp
+Add this directory to your MANPATH to read the Apache 2 man pages. See
+Notes.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/lib/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains the 32-bit Apache 2 core libraries.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/lib/[isainfo]/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains the 64-bit Apache 2 core libraries.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/usr/apache2/[version]/lib/perl/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains the 32-bit modules and library files used by the \fBmod_perl\fR extension to Apache 2.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/var/apache2/[version]/cgi-bin/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Default location for the CGI scripts.
+.sp
+This can be changed by altering the \fBhttpd.conf\fR file
+and restarting the server.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/var/apache2/[version]/htdocs/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Default document root.
+.sp
+This can be changed by altering the \fBhttpd.conf\fR file
+and restarting the server.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/var/apache2/[version]/icons/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Icons used by the server.
+.sp
+This should not be changed.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/var/apache2/[version]/libexec/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Place holder for 32-bit user Apache 2 modules.
+.sp
+Any 32-bit modules which are added using \fBapxs(8)\fR are
+copied into this directory.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/var/apache2/[version]/libexec/[isainfo]/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Place holder for 64-bit user Apache 2 modules.
+.sp
+Any 64-bit modules which are added using \fBapxs(8)\fR are
+copied into this directory.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/var/apache2/[version]/logs/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Contains server log files.
+.sp
+The formats, names, and locations of the files in this directory can
+be altered by various configuration directives in the \fBhttpd.conf\fR file.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/var/apache2/[version]/proxy/\fR\fR
+.ad
+.sp .6
+.RS 4n
+Directory used to cache pages if  the caching feature of \fBmod_proxy\fR is enabled in the \fBhttpd.conf\fR file.
+.sp
+The location of the cache can also be changed by changing the proxy
+configuration in the \fBhttpd.conf\fR file.
+.RE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBattributes(5)\fR, \fBhttpd(8)\fR, apachectl(8)
+.sp
+.LP
+http://www.apache.org
+.SH NOTES
+.sp
+.LP
+In addition to the documentation and man pages included with Solaris,
+more information is available at http://www.apache.org\&.
+.sp
+.LP
+The Apache 2 man pages are provided with the programming modules. To
+view the manual pages for the Apache 2 modules with the man command, add \fB/usr/apache2/[version]/man\fR to the MANPATH environment variable.
+See \fBman(1)\fR for more information. Running \fBcatman(1M)\fR on
+the Apache 2 manual pages is not supported.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Solaris/customization.sh	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,110 @@
+#!/usr/bin/ksh93
+
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set -o errexit
+
+PROTO=$1
+MACH64=$2
+
+CONFDIR=${PROTO}/etc/apache2/2.2
+MODULES_32_CONF=${CONFDIR}/conf.d/modules-32.load
+MODULES_64_CONF=${CONFDIR}/conf.d/modules-64.load
+APACHECTL64=${PROTO}/usr/apache2/2.2/bin/${MACH64}/apachectl
+APACHE_BUILD_DIR32=${PROTO}/usr/apache2/2.2/build
+APACHE_BUILD_DIR64=${PROTO}/usr/apache2/2.2/build/${MACH64}
+
+mkdir -p ${CONFDIR}/conf.d
+mkdir -p ${CONFDIR}/samples-conf.d
+mkdir -p ${PROTO}/lib/svc/method
+
+cp Solaris/modules-32.load Solaris/modules-64.load ${CONFDIR}/conf.d
+
+# Strip LoadModule directives from httpd.conf. 
+grep -v "^LoadModule " ${CONFDIR}/httpd.conf > ${CONFDIR}/original/httpd.conf
+
+# Strip the 32-bit LoadModule directives from httpd.conf and put them in a
+# separate file.
+grep "^LoadModule " ${CONFDIR}/httpd.conf >> ${MODULES_32_CONF}
+sed -f Solaris/loadmodules.sed ${MODULES_32_CONF} > ${MODULES_32_CONF}.new
+mv ${MODULES_32_CONF}.new ${MODULES_32_CONF}
+
+# Strip the 64-bit LoadModule directives from httpd.conf and put them in a
+# separate file.
+grep "^LoadModule " ${CONFDIR}/httpd.conf | sed -e "s;/;/64/;g" >> ${MODULES_64_CONF}
+sed -f Solaris/loadmodules.sed ${MODULES_64_CONF} > ${MODULES_64_CONF}.new
+mv ${MODULES_64_CONF}.new ${MODULES_64_CONF}
+
+# Remove the bundled but disabled (by default) modules from modules-32.load,
+# modules-64.load and create a sample .conf file for each of them.
+for i in `sed -e 's/#.*//' -e '/^$/ d' Solaris/disabled-module.list`; do
+  sed -e '/LoadModule.*'${i}'.so/ d' ${MODULES_32_CONF} > ${MODULES_32_CONF}.new
+  mv ${MODULES_32_CONF}.new  ${MODULES_32_CONF}
+  sed -e '/LoadModule.*'${i}'.so/ d' ${MODULES_64_CONF} > ${MODULES_64_CONF}.new
+  mv ${MODULES_64_CONF}.new  ${MODULES_64_CONF}
+  module_name=`echo ${i} | sed -e 's/^mod_//'`
+  sed -e 's/::MODULE_NAME::/'${module_name}'/g' Solaris/sample-module.tmpl \
+     > ${CONFDIR}/samples-conf.d/${module_name}.conf
+done
+
+# Add MACH64 specific dir info into SMF method.
+sed "s/::ISAINFO::/\/${MACH64}/" Solaris/http-apache22 > ${PROTO}/lib/svc/method/http-apache22
+
+# Add "-D 64" argument into 64 bit apachectl (if it's not there yet).
+grep OPTS_64 ${APACHECTL64} > /dev/null || ( sed -e '/^case $ARGV in/i\
+OPTS_64="-D 64bit"\
+HTTPD="$HTTPD $OPTS_64"\
+' ${APACHECTL64} > ${APACHECTL64}.new && mv ${APACHECTL64}.new ${APACHECTL64} )
+
+# Since we are delivering mod_sed in separate package we don't want it in
+# original httpd.conf file.
+grep sed_module ${CONFDIR}/httpd.conf > /dev/null && \
+grep -v sed_module ${CONFDIR}/httpd.conf > ${CONFDIR}/httpd.conf.new && \
+mv ${CONFDIR}/httpd.conf.new ${CONFDIR}/httpd.conf
+
+# Remove CBE specific paths for C compiler.
+for i in ${APACHE_BUILD_DIR32}/config.nice \
+	 ${APACHE_BUILD_DIR64}/config.nice \
+	 ${APACHE_BUILD_DIR32}/config_vars.mk \
+	 ${APACHE_BUILD_DIR64}/config_vars.mk;
+do
+  sed -e '/^.*CC *=/s,/.*/,,' \
+      -e '/^.*CXX *=/s,/.*/,,' \
+      -e '/MKDEP *=/s,/.*/,,' \
+      -e '/\/configure/s,/.*/,.\/,' < ${i} > ${i}.new
+  mv ${i}.new ${i}
+done
+
+# 64 bit rules.mk and special.mk should refer also to 64 bit build files.
+for i in ${APACHE_BUILD_DIR64}/rules.mk \
+	 ${APACHE_BUILD_DIR64}/special.mk
+do
+  sed -e "s/build\/config_vars/build\/${MACH64}\/config_vars/" \
+      -e "s/build\/rules/build\/${MACH64}\/rules/" \
+      -e "s/build\/instdso/build\/${MACH64}\/instdso/" < ${i} > ${i}.new
+  mv ${i}.new ${i}
+done
+exit 0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Solaris/disabled-module.list	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,38 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# This is the list of apache modules which are bundled but disabled by default.
+# i.e. modules not loaded at startup.
+# There will be one sample .conf file (with a name '<module-name>.conf')
+# for every module listed below. These config files will be placed in
+# $(ETC_ROOT)/apache2/2.2/samples-conf.d/ directory.
+# Each config file will have the "LoadModule" directive for the corresponding
+# apache module
+#
+
+mod_proxy_scgi
+mod_reqtimeout
+mod_sed
Binary file components/apache2/Solaris/favicon.gif has changed
Binary file components/apache2/Solaris/favicon.ico has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Solaris/http-apache22	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,166 @@
+#!/sbin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+. /lib/svc/share/smf_include.sh
+
+APACHE_VERSION=
+APACHE_USR_ROOT=/usr/apache2
+APACHE_ETC_ROOT=/etc/apache2
+APACHE_VAR_ROOT=/var/apache2
+
+#if startup options contain multiple arguments separated by a blank,
+#then they should be specified as below
+#e.g., %> svccfg -s apache22 setprop 'httpd/startup_options=("-f" "/etc/apache2/2.2/new.conf")' 
+#
+STARTUP_OPTIONS=
+
+SERVER_TYPE=prefork
+PLATFORM_DIR=
+
+getprop() {
+    PROPVAL=""
+    svcprop -q -p $1 ${SMF_FMRI}
+    if [ $? -eq 0 ] ; then
+        PROPVAL=`svcprop -p $1 ${SMF_FMRI}`
+        if [ "${PROPVAL}" = "\"\"" ] ; then
+            PROPVAL=""
+        fi
+        return
+    fi
+    return
+}
+
+APACHE_VERSION=`echo ${SMF_FMRI} | sed 's/[^0-9]//g;s/./\.&/g;s/^\.//'` 
+if [ "x${APACHE_VERSION}" != "x" ]; then
+    echo "Apache version is ${APACHE_VERSION}"
+    APACHE_USR_ROOT=${APACHE_USR_ROOT}/${APACHE_VERSION}
+    APACHE_ETC_ROOT=${APACHE_ETC_ROOT}/${APACHE_VERSION}
+    APACHE_VAR_ROOT=${APACHE_VAR_ROOT}/${APACHE_VERSION}
+fi
+
+getprop httpd/enable_64bit
+if [ "${PROPVAL}" != "" ] ; then
+    case ${PROPVAL} in
+    true|1)
+        # Check if the system architecture supports 64-bit applications
+        PLATFORM=`isainfo -b`
+        if [ "${PLATFORM}" != "64" ]; then
+            echo "This system is not capable of supporting 64-bit applications."
+            echo "Set \"enable_64bit\" property value to \"false\" to start the 32-bit server."
+            exit $SMF_EXIT_ERR_CONFIG
+        fi
+
+	# 64 bit Apache
+	PLATFORM_DIR=::ISAINFO::
+	;;
+    false|0) 
+	# 32 bit Apache
+	PLATFORM_DIR=
+	;;
+    *)
+	# Invalid value for "bitness"
+	echo "\"bitness\" property value is invalid. Starting the server in 32-bit mode"
+	PLATFORM_DIR=
+	;;
+    esac
+fi
+
+APACHE_HOME=${APACHE_USR_ROOT}
+APACHE_BIN=${APACHE_HOME}/bin${PLATFORM_DIR}
+
+getprop httpd/startup_options
+if [ "${PROPVAL}" != "" ] ; then
+	echo startupoptions set
+	echo val=${PROPVAL}
+	STARTUP_OPTIONS="${PROPVAL} -k"
+fi
+
+getprop httpd/server_type
+if [ "${PROPVAL}" != "" ] ; then
+	SERVER_TYPE=${PROPVAL}
+fi
+
+case ${SERVER_TYPE} in
+prefork)
+	# If HTTPD value is set in
+	# /etc/apache2/<version>/envvars file
+	# delete the line so that it defaults to prefork 
+	# type
+	ALREADY_SET=`grep "HTTPD=" ${APACHE_ETC_ROOT}/envvars`
+	if [ "${ALREADY_SET}" != "" ]; then
+		sed -e '/^HTTPD=/ d' ${APACHE_ETC_ROOT}/envvars > ${APACHE_ETC_ROOT}/envvars.new
+		cp ${APACHE_ETC_ROOT}/envvars.new ${APACHE_ETC_ROOT}/envvars
+		rm ${APACHE_ETC_ROOT}/envvars.new
+	fi
+	;;
+worker)
+	# set HTTPD value to httpd.worker within 
+	# /etc/apache2/<version>/envvars file
+	ALREADY_SET=`grep "HTTPD=" ${APACHE_ETC_ROOT}/envvars`
+	if [ "${ALREADY_SET}" != "" ]; then
+		sed -e '/^HTTPD=/c\
+HTTPD='${APACHE_BIN}'/httpd.worker' ${APACHE_ETC_ROOT}/envvars > ${APACHE_ETC_ROOT}/envvars.new
+	else
+		sed -e '$a\
+HTTPD='${APACHE_BIN}'/httpd.worker' ${APACHE_ETC_ROOT}/envvars > ${APACHE_ETC_ROOT}/envvars.new
+	fi
+
+	cp ${APACHE_ETC_ROOT}/envvars.new ${APACHE_ETC_ROOT}/envvars
+	rm ${APACHE_ETC_ROOT}/envvars.new
+	;;
+*)
+        if [ "x${APACHE_VERSION}" != "x" ]; then
+            echo "Unknown server_type"
+            exit $SMF_EXIT_ERR_CONFIG
+        fi
+	;;
+esac
+	
+
+
+case "$1" in
+start)
+	cmd="start"
+	;;
+refresh)
+	cmd="graceful"
+	;;
+stop)
+	cmd="stop"
+	;;
+*)
+	echo "Usage: $0 {start|stop|refresh}"
+	exit $SMF_EXIT_ERR_CONFIG
+	;;
+esac
+
+${APACHE_BIN}/apachectl ${STARTUP_OPTIONS} ${cmd} 2>&1
+
+if [ $? -ne 0 ]; then
+    echo "Server failed to start. Check the error log (defaults to ${APACHE_VAR_ROOT}/logs/error_log) for more information, if any."
+    exit $SMF_EXIT_ERR_FATAL
+fi
+
+exit $SMF_EXIT_OK
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Solaris/http-apache22.xml	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,135 @@
+<?xml version="1.0"?>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+-->
+
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+    Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+-->
+
+<service_bundle type='manifest' name='SUNWapch22r:apache'>
+
+<service
+	name='network/http'
+	type='service'
+	version='1'>
+
+	<!--
+	  Because we may have multiple instances of network/http
+	  provided by different implementations, we keep dependencies
+	  and methods within the instance.
+	-->
+
+	<instance name='apache22' enabled='false'>
+		<!--
+		  Wait for network interfaces to be initialized.
+		-->
+		<dependency name='network'
+		    grouping='require_all'
+		    restart_on='error'
+		    type='service'>
+		    <service_fmri value='svc:/milestone/network:default'/>
+		</dependency>
+
+		<!--
+		  Wait for all local filesystems to be mounted.
+		-->
+		<dependency name='filesystem-local'
+		    grouping='require_all'
+		    restart_on='none'
+		    type='service'>
+		    <service_fmri
+			value='svc:/system/filesystem/local:default'/>
+		</dependency>
+
+		<!--
+		  Wait for automounting to be available, as we may be
+		  serving data from home directories or other remote
+		  filesystems.
+		-->
+		<dependency name='autofs'
+		    grouping='optional_all'
+		    restart_on='error'
+		    type='service'>
+		    <service_fmri
+			value='svc:/system/filesystem/autofs:default'/>
+		</dependency>
+
+		<exec_method
+			type='method'
+			name='start'
+			exec='/lib/svc/method/http-apache22 start'
+			timeout_seconds='60' />
+
+		<exec_method
+			type='method'
+			name='stop'
+			exec='/lib/svc/method/http-apache22 stop'
+			timeout_seconds='60' />
+
+		<exec_method
+			type='method'
+			name='refresh'
+			exec='/lib/svc/method/http-apache22 refresh'
+			timeout_seconds='60' />
+
+		<property_group name='httpd' type='application'>
+			<stability value='Evolving' />
+			<propval name='startup_options' type='astring' value='' />
+			<propval name='server_type' type='astring' value='prefork' />
+			<propval name='enable_64bit' type='boolean' value='false' />
+			<propval name='value_authorization' type='astring' value='solaris.smf.value.http/apache22' />
+		</property_group>
+
+		<property_group name='general' type='framework'>
+			<propval name='action_authorization' type='astring' value='solaris.smf.manage.http/apache22' />
+			<propval name='value_authorization' type='astring' value='solaris.smf.value.http/apache22' />
+		</property_group>
+
+		<property_group name='startd' type='framework'>
+			<!-- sub-process core dumps shouldn't restart
+				session -->
+			<propval name='ignore_error' type='astring'
+				value='core,signal' />
+		</property_group>
+
+		<template>
+			<common_name>
+				<loctext xml:lang='C'>
+					Apache 2.2 HTTP server
+				</loctext>
+			</common_name>
+
+			<documentation>
+				<manpage title='httpd' section='8'
+					manpath='/usr/apache2/2.2/man' />
+				<doc_link name='apache.org'
+					uri='http://httpd.apache.org' />
+			</documentation>
+		</template>
+
+	</instance>
+
+	<stability value='Evolving' />
+
+</service>
+
+</service_bundle>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Solaris/loadmodules.sed	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,33 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+/IfModule/d
+/LoadModule cgi_module /i\
+<IfModule prefork.c>
+/LoadModule cgi_module /a\
+</IfModule>
+/LoadModule cgid_module /i\
+<IfModule worker.c>
+/LoadModule cgid_module /a\
+</IfModule>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Solaris/modules-32.load	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,38 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# 32-bit Dynamic Shared Object (DSO) Support
+#
+# To be able to use the functionality of a module which was built as a
+# 32-bit DSO you have to place corresponding `LoadModule' lines at this
+# location so the directives contained in it are actually available
+# _before_ they are used.
+# Statically compiled modules (those listed by `httpd -l') do not need
+# to be loaded here.
+#
+# Example:
+# LoadModule foo_module libexec/mod_foo.so
+#
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Solaris/modules-64.load	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,38 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# 64-bit Dynamic Shared Object (DSO) Support
+#
+# To be able to use the functionality of a module which was built as a
+# 64-bit DSO you have to place corresponding `LoadModule' lines at this
+# location so the directives contained in it are actually available
+# _before_ they are used.
+# Statically compiled modules (those listed by `httpd -l') do not need
+# to be loaded here.
+#
+# Example:
+# LoadModule foo_module libexec/64/mod_foo.so
+#
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/Solaris/sample-module.tmpl	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,31 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+<IfDefine 64bit>
+LoadModule ::MODULE_NAME::_module libexec/64/mod_::MODULE_NAME::.so
+</IfDefine>
+<IfDefine !64bit>
+LoadModule ::MODULE_NAME::_module libexec/mod_::MODULE_NAME::.so
+</IfDefine>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/apache-22.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,621 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="Apache Web Server V2.2"
+set name=pkg.description \
+    value="The Apache HTTP Server Version 2.2"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://httpd.apache.org/"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2009/565
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license LICENSE license="Apache v2.0"
+
+dir path=etc
+dir path=etc/apache2
+dir path=etc/apache2/2.2
+dir path=etc/apache2/2.2/conf.d
+dir path=etc/apache2/2.2/original
+dir path=etc/apache2/2.2/samples-conf.d
+dir path=lib
+dir path=lib/svc
+dir path=lib/svc/manifest
+dir path=lib/svc/manifest/network
+dir path=lib/svc/method
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/bin
+dir path=usr/apache2/2.2/bin/$(MACH64)
+dir path=usr/apache2/2.2/build
+dir path=usr/apache2/2.2/build/$(MACH64)
+dir path=usr/apache2/2.2/include
+dir path=usr/apache2/2.2/libexec
+dir path=usr/apache2/2.2/libexec/$(MACH64)
+dir path=usr/bin
+dir path=usr/bin/$(MACH64)
+dir path=var
+dir path=var/apache2
+dir path=var/apache2/2.2
+dir path=var/apache2/2.2/cgi-bin
+dir path=var/apache2/2.2/error
+dir path=var/apache2/2.2/error/include
+dir path=var/apache2/2.2/htdocs
+dir path=var/apache2/2.2/icons
+dir path=var/apache2/2.2/icons/small
+dir path=var/apache2/2.2/libexec
+dir path=var/apache2/2.2/libexec/$(MACH64)
+dir path=var/apache2/2.2/logs
+dir path=var/apache2/2.2/proxy group=webservd owner=webservd
+file path=etc/apache2/2.2/conf.d/modules-32.load mode=0644 preserve=renamenew \
+    original_name=SUNWapch22:etc/apache2/2.2/conf.d/modules-32.load
+file path=etc/apache2/2.2/conf.d/modules-64.load mode=0644 preserve=renamenew \
+    original_name=SUNWapch22:etc/apache2/2.2/conf.d/modules-64.load
+file path=etc/apache2/2.2/envvars mode=0644 preserve=renamenew \
+    original_name=SUNWapch22:etc/apache2/2.2/envvars
+file etc/apache2/2.2/original/httpd.conf path=etc/apache2/2.2/httpd.conf mode=0644 preserve=renamenew \
+    original_name=SUNWapch22:etc/apache2/2.2/httpd.conf
+file path=etc/apache2/2.2/magic mode=0644 preserve=renamenew \
+    original_name=SUNWapch22:etc/apache2/2.2/magic
+file path=etc/apache2/2.2/mime.types mode=0644 preserve=renamenew \
+    original_name=SUNWapch22:etc/apache2/2.2/mime.types
+file etc/apache2/2.2/httpd.conf path=etc/apache2/2.2/original/httpd.conf
+file etc/apache2/2.2/extra/httpd-autoindex.conf path=etc/apache2/2.2/samples-conf.d/autoindex.conf
+file etc/apache2/2.2/extra/httpd-dav.conf path=etc/apache2/2.2/samples-conf.d/dav.conf
+file etc/apache2/2.2/extra/httpd-default.conf path=etc/apache2/2.2/samples-conf.d/default.conf
+file etc/apache2/2.2/extra/httpd-info.conf path=etc/apache2/2.2/samples-conf.d/info.conf
+file etc/apache2/2.2/extra/httpd-languages.conf path=etc/apache2/2.2/samples-conf.d/languages.conf
+file etc/apache2/2.2/extra/httpd-manual.conf path=etc/apache2/2.2/samples-conf.d/manual.conf
+file etc/apache2/2.2/extra/httpd-mpm.conf path=etc/apache2/2.2/samples-conf.d/mpm.conf
+file etc/apache2/2.2/extra/httpd-multilang-errordoc.conf path=etc/apache2/2.2/samples-conf.d/multilang-errordoc.conf
+file path=etc/apache2/2.2/samples-conf.d/proxy_scgi.conf
+file path=etc/apache2/2.2/samples-conf.d/reqtimeout.conf
+file etc/apache2/2.2/extra/httpd-ssl.conf path=etc/apache2/2.2/samples-conf.d/ssl.conf
+file etc/apache2/2.2/extra/httpd-userdir.conf path=etc/apache2/2.2/samples-conf.d/userdir.conf
+file etc/apache2/2.2/extra/httpd-vhosts.conf path=etc/apache2/2.2/samples-conf.d/vhosts.conf
+file Solaris/http-apache22.xml path=lib/svc/manifest/network/http-apache22.xml
+file path=lib/svc/method/http-apache22
+file path=usr/apache2/2.2/bin/$(MACH64)/ab
+file path=usr/apache2/2.2/bin/$(MACH64)/apachectl
+file path=usr/apache2/2.2/bin/$(MACH64)/apxs
+file path=usr/apache2/2.2/bin/$(MACH64)/checkgid
+file path=usr/apache2/2.2/bin/$(MACH64)/dbmmanage
+file path=usr/apache2/2.2/bin/$(MACH64)/envvars
+file path=usr/apache2/2.2/bin/$(MACH64)/envvars-std
+file path=usr/apache2/2.2/bin/$(MACH64)/htcacheclean
+file path=usr/apache2/2.2/bin/$(MACH64)/htdbm
+file path=usr/apache2/2.2/bin/$(MACH64)/htdigest
+file path=usr/apache2/2.2/bin/$(MACH64)/htpasswd
+file path=usr/apache2/2.2/bin/$(MACH64)/httpd
+file build/worker/$(MACH64)/httpd path=usr/apache2/2.2/bin/$(MACH64)/httpd.worker
+file path=usr/apache2/2.2/bin/$(MACH64)/httxt2dbm
+file path=usr/apache2/2.2/bin/$(MACH64)/logresolve
+file path=usr/apache2/2.2/bin/$(MACH64)/rotatelogs
+file usr/apache2/2.2/bin/$(MACH64)/suexec path=usr/apache2/2.2/bin/$(MACH64)/suexec.disabled mode=0500
+file path=usr/apache2/2.2/bin/ab
+file path=usr/apache2/2.2/bin/apachectl
+file path=usr/apache2/2.2/bin/apxs
+file path=usr/apache2/2.2/bin/checkgid
+file path=usr/apache2/2.2/bin/dbmmanage
+file path=usr/apache2/2.2/bin/envvars
+file path=usr/apache2/2.2/bin/envvars-std
+file path=usr/apache2/2.2/bin/htcacheclean
+file path=usr/apache2/2.2/bin/htdbm
+file path=usr/apache2/2.2/bin/htdigest
+file path=usr/apache2/2.2/bin/htpasswd
+file path=usr/apache2/2.2/bin/httpd
+file build/worker/$(MACH32)/httpd path=usr/apache2/2.2/bin/httpd.worker
+file path=usr/apache2/2.2/bin/httxt2dbm
+file path=usr/apache2/2.2/bin/logresolve
+file path=usr/apache2/2.2/bin/rotatelogs
+file usr/apache2/2.2/bin/suexec path=usr/apache2/2.2/bin/suexec.disabled mode=0500
+file path=usr/apache2/2.2/build/$(MACH64)/config.nice
+file path=usr/apache2/2.2/build/$(MACH64)/config_vars.mk
+file path=usr/apache2/2.2/build/$(MACH64)/instdso.sh
+file path=usr/apache2/2.2/build/$(MACH64)/library.mk
+file path=usr/apache2/2.2/build/$(MACH64)/ltlib.mk
+file path=usr/apache2/2.2/build/$(MACH64)/mkdir.sh
+file path=usr/apache2/2.2/build/$(MACH64)/program.mk
+file path=usr/apache2/2.2/build/$(MACH64)/rules.mk
+file path=usr/apache2/2.2/build/$(MACH64)/special.mk
+file path=usr/apache2/2.2/build/config.nice
+file path=usr/apache2/2.2/build/config_vars.mk
+file path=usr/apache2/2.2/build/instdso.sh
+file path=usr/apache2/2.2/build/library.mk
+file path=usr/apache2/2.2/build/ltlib.mk
+file path=usr/apache2/2.2/build/mkdir.sh
+file path=usr/apache2/2.2/build/program.mk
+file path=usr/apache2/2.2/build/rules.mk
+file path=usr/apache2/2.2/build/special.mk
+file path=usr/apache2/2.2/include/ap_compat.h
+file path=usr/apache2/2.2/include/ap_config.h
+file path=usr/apache2/2.2/include/ap_config_auto.h
+file path=usr/apache2/2.2/include/ap_config_layout.h
+file path=usr/apache2/2.2/include/ap_listen.h
+file path=usr/apache2/2.2/include/ap_mmn.h
+file path=usr/apache2/2.2/include/ap_mpm.h
+file path=usr/apache2/2.2/include/ap_provider.h
+file path=usr/apache2/2.2/include/ap_regex.h
+file path=usr/apache2/2.2/include/ap_regkey.h
+file path=usr/apache2/2.2/include/ap_release.h
+file path=usr/apache2/2.2/include/fdqueue.h
+file path=usr/apache2/2.2/include/http_config.h
+file path=usr/apache2/2.2/include/http_connection.h
+file path=usr/apache2/2.2/include/http_core.h
+file path=usr/apache2/2.2/include/http_log.h
+file path=usr/apache2/2.2/include/http_main.h
+file path=usr/apache2/2.2/include/http_protocol.h
+file path=usr/apache2/2.2/include/http_request.h
+file path=usr/apache2/2.2/include/http_vhost.h
+file path=usr/apache2/2.2/include/httpd.h
+file path=usr/apache2/2.2/include/mod_auth.h
+file path=usr/apache2/2.2/include/mod_cgi.h
+file path=usr/apache2/2.2/include/mod_core.h
+file path=usr/apache2/2.2/include/mod_dav.h
+file path=usr/apache2/2.2/include/mod_dbd.h
+file path=usr/apache2/2.2/include/mod_include.h
+file path=usr/apache2/2.2/include/mod_log_config.h
+file path=usr/apache2/2.2/include/mod_proxy.h
+file path=usr/apache2/2.2/include/mod_rewrite.h
+file path=usr/apache2/2.2/include/mod_ssl.h
+file path=usr/apache2/2.2/include/mod_status.h
+file path=usr/apache2/2.2/include/mpm.h
+file path=usr/apache2/2.2/include/mpm_common.h
+file path=usr/apache2/2.2/include/mpm_default.h
+file path=usr/apache2/2.2/include/os.h
+file path=usr/apache2/2.2/include/pod.h
+file path=usr/apache2/2.2/include/scoreboard.h
+file path=usr/apache2/2.2/include/unixd.h
+file path=usr/apache2/2.2/include/util_cfgtree.h
+file path=usr/apache2/2.2/include/util_charset.h
+file path=usr/apache2/2.2/include/util_ebcdic.h
+file path=usr/apache2/2.2/include/util_filter.h
+file path=usr/apache2/2.2/include/util_ldap.h
+file path=usr/apache2/2.2/include/util_md5.h
+file path=usr/apache2/2.2/include/util_script.h
+file path=usr/apache2/2.2/include/util_time.h
+file path=usr/apache2/2.2/include/util_xml.h
+file path=usr/apache2/2.2/libexec/$(MACH64)/httpd.exp
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_actions.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_alias.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_asis.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_auth_basic.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_auth_digest.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_auth_gss.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_anon.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_dbd.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_dbm.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_default.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_file.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authnz_ldap.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_dbm.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_default.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_groupfile.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_host.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_owner.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_user.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_autoindex.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_cache.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_cern_meta.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_cgi.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_cgid.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dav.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dav_fs.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dbd.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_deflate.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dir.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_disk_cache.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dumpio.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_env.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_expires.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_ext_filter.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_file_cache.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_filter.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_headers.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_ident.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_imagemap.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_include.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_info.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_ldap.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_log_config.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_log_forensic.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_logio.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_mem_cache.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_mime.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_mime_magic.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_negotiation.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_ajp.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_balancer.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_connect.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_ftp.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_http.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_scgi.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_reqtimeout.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_rewrite.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_setenvif.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_speling.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_ssl.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_status.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_substitute.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_suexec.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_unique_id.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_userdir.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_usertrack.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_version.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_vhost_alias.so
+file path=usr/apache2/2.2/libexec/httpd.exp
+file path=usr/apache2/2.2/libexec/mod_actions.so
+file path=usr/apache2/2.2/libexec/mod_alias.so
+file path=usr/apache2/2.2/libexec/mod_asis.so
+file path=usr/apache2/2.2/libexec/mod_auth_basic.so
+file path=usr/apache2/2.2/libexec/mod_auth_digest.so
+file path=usr/apache2/2.2/libexec/mod_auth_gss.so
+file path=usr/apache2/2.2/libexec/mod_authn_anon.so
+file path=usr/apache2/2.2/libexec/mod_authn_dbd.so
+file path=usr/apache2/2.2/libexec/mod_authn_dbm.so
+file path=usr/apache2/2.2/libexec/mod_authn_default.so
+file path=usr/apache2/2.2/libexec/mod_authn_file.so
+file path=usr/apache2/2.2/libexec/mod_authnz_ldap.so
+file path=usr/apache2/2.2/libexec/mod_authz_dbm.so
+file path=usr/apache2/2.2/libexec/mod_authz_default.so
+file path=usr/apache2/2.2/libexec/mod_authz_groupfile.so
+file path=usr/apache2/2.2/libexec/mod_authz_host.so
+file path=usr/apache2/2.2/libexec/mod_authz_owner.so
+file path=usr/apache2/2.2/libexec/mod_authz_user.so
+file path=usr/apache2/2.2/libexec/mod_autoindex.so
+file path=usr/apache2/2.2/libexec/mod_cache.so
+file path=usr/apache2/2.2/libexec/mod_cern_meta.so
+file path=usr/apache2/2.2/libexec/mod_cgi.so
+file path=usr/apache2/2.2/libexec/mod_cgid.so
+file path=usr/apache2/2.2/libexec/mod_dav.so
+file path=usr/apache2/2.2/libexec/mod_dav_fs.so
+file path=usr/apache2/2.2/libexec/mod_dbd.so
+file path=usr/apache2/2.2/libexec/mod_deflate.so
+file path=usr/apache2/2.2/libexec/mod_dir.so
+file path=usr/apache2/2.2/libexec/mod_disk_cache.so
+file path=usr/apache2/2.2/libexec/mod_dumpio.so
+file path=usr/apache2/2.2/libexec/mod_env.so
+file path=usr/apache2/2.2/libexec/mod_expires.so
+file path=usr/apache2/2.2/libexec/mod_ext_filter.so
+file path=usr/apache2/2.2/libexec/mod_file_cache.so
+file path=usr/apache2/2.2/libexec/mod_filter.so
+file path=usr/apache2/2.2/libexec/mod_headers.so
+file path=usr/apache2/2.2/libexec/mod_ident.so
+file path=usr/apache2/2.2/libexec/mod_imagemap.so
+file path=usr/apache2/2.2/libexec/mod_include.so
+file path=usr/apache2/2.2/libexec/mod_info.so
+file path=usr/apache2/2.2/libexec/mod_ldap.so
+file path=usr/apache2/2.2/libexec/mod_log_config.so
+file path=usr/apache2/2.2/libexec/mod_log_forensic.so
+file path=usr/apache2/2.2/libexec/mod_logio.so
+file path=usr/apache2/2.2/libexec/mod_mem_cache.so
+file path=usr/apache2/2.2/libexec/mod_mime.so
+file path=usr/apache2/2.2/libexec/mod_mime_magic.so
+file path=usr/apache2/2.2/libexec/mod_negotiation.so
+file path=usr/apache2/2.2/libexec/mod_proxy.so
+file path=usr/apache2/2.2/libexec/mod_proxy_ajp.so
+file path=usr/apache2/2.2/libexec/mod_proxy_balancer.so
+file path=usr/apache2/2.2/libexec/mod_proxy_connect.so
+file path=usr/apache2/2.2/libexec/mod_proxy_ftp.so
+file path=usr/apache2/2.2/libexec/mod_proxy_http.so
+file path=usr/apache2/2.2/libexec/mod_proxy_scgi.so
+file path=usr/apache2/2.2/libexec/mod_reqtimeout.so
+file path=usr/apache2/2.2/libexec/mod_rewrite.so
+file path=usr/apache2/2.2/libexec/mod_setenvif.so
+file path=usr/apache2/2.2/libexec/mod_speling.so
+file path=usr/apache2/2.2/libexec/mod_ssl.so
+file path=usr/apache2/2.2/libexec/mod_status.so
+file path=usr/apache2/2.2/libexec/mod_substitute.so
+file path=usr/apache2/2.2/libexec/mod_suexec.so
+file path=usr/apache2/2.2/libexec/mod_unique_id.so
+file path=usr/apache2/2.2/libexec/mod_userdir.so
+file path=usr/apache2/2.2/libexec/mod_usertrack.so
+file path=usr/apache2/2.2/libexec/mod_version.so
+file path=usr/apache2/2.2/libexec/mod_vhost_alias.so
+file path=var/apache2/2.2/cgi-bin/printenv pkg.depend.bypass-generate=.*
+file path=var/apache2/2.2/cgi-bin/test-cgi
+file path=var/apache2/2.2/error/HTTP_BAD_GATEWAY.html.var
+file path=var/apache2/2.2/error/HTTP_BAD_REQUEST.html.var
+file path=var/apache2/2.2/error/HTTP_FORBIDDEN.html.var
+file path=var/apache2/2.2/error/HTTP_GONE.html.var
+file path=var/apache2/2.2/error/HTTP_INTERNAL_SERVER_ERROR.html.var
+file path=var/apache2/2.2/error/HTTP_LENGTH_REQUIRED.html.var
+file path=var/apache2/2.2/error/HTTP_METHOD_NOT_ALLOWED.html.var
+file path=var/apache2/2.2/error/HTTP_NOT_FOUND.html.var
+file path=var/apache2/2.2/error/HTTP_NOT_IMPLEMENTED.html.var
+file path=var/apache2/2.2/error/HTTP_PRECONDITION_FAILED.html.var
+file path=var/apache2/2.2/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
+file path=var/apache2/2.2/error/HTTP_REQUEST_TIME_OUT.html.var
+file path=var/apache2/2.2/error/HTTP_REQUEST_URI_TOO_LARGE.html.var
+file path=var/apache2/2.2/error/HTTP_SERVICE_UNAVAILABLE.html.var
+file path=var/apache2/2.2/error/HTTP_UNAUTHORIZED.html.var
+file path=var/apache2/2.2/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
+file path=var/apache2/2.2/error/HTTP_VARIANT_ALSO_VARIES.html.var
+file path=var/apache2/2.2/error/README
+file path=var/apache2/2.2/error/contact.html.var
+file path=var/apache2/2.2/error/include/bottom.html
+file path=var/apache2/2.2/error/include/spacer.html
+file path=var/apache2/2.2/error/include/top.html
+file Solaris/favicon.gif path=var/apache2/2.2/htdocs/favicon.gif
+file Solaris/favicon.ico path=var/apache2/2.2/htdocs/favicon.ico
+file path=var/apache2/2.2/htdocs/index.html
+file path=var/apache2/2.2/icons/README
+file path=var/apache2/2.2/icons/README.html
+file path=var/apache2/2.2/icons/a.gif
+file path=var/apache2/2.2/icons/a.png
+file path=var/apache2/2.2/icons/alert.black.gif
+file path=var/apache2/2.2/icons/alert.black.png
+file path=var/apache2/2.2/icons/alert.red.gif
+file path=var/apache2/2.2/icons/alert.red.png
+file path=var/apache2/2.2/icons/apache_pb.gif
+file path=var/apache2/2.2/icons/apache_pb.png
+file path=var/apache2/2.2/icons/apache_pb2.gif
+file path=var/apache2/2.2/icons/apache_pb2.png
+file path=var/apache2/2.2/icons/apache_pb2_ani.gif
+file path=var/apache2/2.2/icons/back.gif
+file path=var/apache2/2.2/icons/back.png
+file path=var/apache2/2.2/icons/ball.gray.gif
+file path=var/apache2/2.2/icons/ball.gray.png
+file path=var/apache2/2.2/icons/ball.red.gif
+file path=var/apache2/2.2/icons/ball.red.png
+file path=var/apache2/2.2/icons/binary.gif
+file path=var/apache2/2.2/icons/binary.png
+file path=var/apache2/2.2/icons/binhex.gif
+file path=var/apache2/2.2/icons/binhex.png
+file path=var/apache2/2.2/icons/blank.gif
+file path=var/apache2/2.2/icons/blank.png
+file path=var/apache2/2.2/icons/bomb.gif
+file path=var/apache2/2.2/icons/bomb.png
+file path=var/apache2/2.2/icons/box1.gif
+file path=var/apache2/2.2/icons/box1.png
+file path=var/apache2/2.2/icons/box2.gif
+file path=var/apache2/2.2/icons/box2.png
+file path=var/apache2/2.2/icons/broken.gif
+file path=var/apache2/2.2/icons/broken.png
+file path=var/apache2/2.2/icons/burst.gif
+file path=var/apache2/2.2/icons/burst.png
+file path=var/apache2/2.2/icons/c.gif
+file path=var/apache2/2.2/icons/c.png
+file path=var/apache2/2.2/icons/comp.blue.gif
+file path=var/apache2/2.2/icons/comp.blue.png
+file path=var/apache2/2.2/icons/comp.gray.gif
+file path=var/apache2/2.2/icons/comp.gray.png
+file path=var/apache2/2.2/icons/compressed.gif
+file path=var/apache2/2.2/icons/compressed.png
+file path=var/apache2/2.2/icons/continued.gif
+file path=var/apache2/2.2/icons/continued.png
+file path=var/apache2/2.2/icons/dir.gif
+file path=var/apache2/2.2/icons/dir.png
+file path=var/apache2/2.2/icons/diskimg.gif
+file path=var/apache2/2.2/icons/diskimg.png
+file path=var/apache2/2.2/icons/down.gif
+file path=var/apache2/2.2/icons/down.png
+file path=var/apache2/2.2/icons/dvi.gif
+file path=var/apache2/2.2/icons/dvi.png
+file path=var/apache2/2.2/icons/f.gif
+file path=var/apache2/2.2/icons/f.png
+file path=var/apache2/2.2/icons/folder.gif
+file path=var/apache2/2.2/icons/folder.open.gif
+file path=var/apache2/2.2/icons/folder.open.png
+file path=var/apache2/2.2/icons/folder.png
+file path=var/apache2/2.2/icons/folder.sec.gif
+file path=var/apache2/2.2/icons/folder.sec.png
+file path=var/apache2/2.2/icons/forward.gif
+file path=var/apache2/2.2/icons/forward.png
+file path=var/apache2/2.2/icons/generic.gif
+file path=var/apache2/2.2/icons/generic.png
+file path=var/apache2/2.2/icons/generic.red.gif
+file path=var/apache2/2.2/icons/generic.red.png
+file path=var/apache2/2.2/icons/generic.sec.gif
+file path=var/apache2/2.2/icons/generic.sec.png
+file path=var/apache2/2.2/icons/hand.right.gif
+file path=var/apache2/2.2/icons/hand.right.png
+file path=var/apache2/2.2/icons/hand.up.gif
+file path=var/apache2/2.2/icons/hand.up.png
+file path=var/apache2/2.2/icons/icon.sheet.gif
+file path=var/apache2/2.2/icons/icon.sheet.png
+file path=var/apache2/2.2/icons/image1.gif
+file path=var/apache2/2.2/icons/image1.png
+file path=var/apache2/2.2/icons/image2.gif
+file path=var/apache2/2.2/icons/image2.png
+file path=var/apache2/2.2/icons/image3.gif
+file path=var/apache2/2.2/icons/image3.png
+file path=var/apache2/2.2/icons/index.gif
+file path=var/apache2/2.2/icons/index.png
+file path=var/apache2/2.2/icons/layout.gif
+file path=var/apache2/2.2/icons/layout.png
+file path=var/apache2/2.2/icons/left.gif
+file path=var/apache2/2.2/icons/left.png
+file path=var/apache2/2.2/icons/link.gif
+file path=var/apache2/2.2/icons/link.png
+file path=var/apache2/2.2/icons/movie.gif
+file path=var/apache2/2.2/icons/movie.png
+file path=var/apache2/2.2/icons/p.gif
+file path=var/apache2/2.2/icons/p.png
+file path=var/apache2/2.2/icons/patch.gif
+file path=var/apache2/2.2/icons/patch.png
+file path=var/apache2/2.2/icons/pdf.gif
+file path=var/apache2/2.2/icons/pdf.png
+file path=var/apache2/2.2/icons/pie0.gif
+file path=var/apache2/2.2/icons/pie0.png
+file path=var/apache2/2.2/icons/pie1.gif
+file path=var/apache2/2.2/icons/pie1.png
+file path=var/apache2/2.2/icons/pie2.gif
+file path=var/apache2/2.2/icons/pie2.png
+file path=var/apache2/2.2/icons/pie3.gif
+file path=var/apache2/2.2/icons/pie3.png
+file path=var/apache2/2.2/icons/pie4.gif
+file path=var/apache2/2.2/icons/pie4.png
+file path=var/apache2/2.2/icons/pie5.gif
+file path=var/apache2/2.2/icons/pie5.png
+file path=var/apache2/2.2/icons/pie6.gif
+file path=var/apache2/2.2/icons/pie6.png
+file path=var/apache2/2.2/icons/pie7.gif
+file path=var/apache2/2.2/icons/pie7.png
+file path=var/apache2/2.2/icons/pie8.gif
+file path=var/apache2/2.2/icons/pie8.png
+file path=var/apache2/2.2/icons/portal.gif
+file path=var/apache2/2.2/icons/portal.png
+file path=var/apache2/2.2/icons/ps.gif
+file path=var/apache2/2.2/icons/ps.png
+file path=var/apache2/2.2/icons/quill.gif
+file path=var/apache2/2.2/icons/quill.png
+file path=var/apache2/2.2/icons/right.gif
+file path=var/apache2/2.2/icons/right.png
+file path=var/apache2/2.2/icons/screw1.gif
+file path=var/apache2/2.2/icons/screw1.png
+file path=var/apache2/2.2/icons/screw2.gif
+file path=var/apache2/2.2/icons/screw2.png
+file path=var/apache2/2.2/icons/script.gif
+file path=var/apache2/2.2/icons/script.png
+file path=var/apache2/2.2/icons/small/back.gif
+file path=var/apache2/2.2/icons/small/back.png
+file path=var/apache2/2.2/icons/small/binary.gif
+file path=var/apache2/2.2/icons/small/binary.png
+file path=var/apache2/2.2/icons/small/binhex.gif
+file path=var/apache2/2.2/icons/small/binhex.png
+file path=var/apache2/2.2/icons/small/blank.gif
+file path=var/apache2/2.2/icons/small/blank.png
+file path=var/apache2/2.2/icons/small/broken.gif
+file path=var/apache2/2.2/icons/small/broken.png
+file path=var/apache2/2.2/icons/small/burst.gif
+file path=var/apache2/2.2/icons/small/burst.png
+file path=var/apache2/2.2/icons/small/comp1.gif
+file path=var/apache2/2.2/icons/small/comp1.png
+file path=var/apache2/2.2/icons/small/comp2.gif
+file path=var/apache2/2.2/icons/small/comp2.png
+file path=var/apache2/2.2/icons/small/compressed.gif
+file path=var/apache2/2.2/icons/small/compressed.png
+file path=var/apache2/2.2/icons/small/continued.gif
+file path=var/apache2/2.2/icons/small/continued.png
+file path=var/apache2/2.2/icons/small/dir.gif
+file path=var/apache2/2.2/icons/small/dir.png
+file path=var/apache2/2.2/icons/small/dir2.gif
+file path=var/apache2/2.2/icons/small/dir2.png
+file path=var/apache2/2.2/icons/small/doc.gif
+file path=var/apache2/2.2/icons/small/doc.png
+file path=var/apache2/2.2/icons/small/forward.gif
+file path=var/apache2/2.2/icons/small/forward.png
+file path=var/apache2/2.2/icons/small/generic.gif
+file path=var/apache2/2.2/icons/small/generic.png
+file path=var/apache2/2.2/icons/small/generic2.gif
+file path=var/apache2/2.2/icons/small/generic2.png
+file path=var/apache2/2.2/icons/small/generic3.gif
+file path=var/apache2/2.2/icons/small/generic3.png
+file path=var/apache2/2.2/icons/small/image.gif
+file path=var/apache2/2.2/icons/small/image.png
+file path=var/apache2/2.2/icons/small/image2.gif
+file path=var/apache2/2.2/icons/small/image2.png
+file path=var/apache2/2.2/icons/small/index.gif
+file path=var/apache2/2.2/icons/small/index.png
+file path=var/apache2/2.2/icons/small/key.gif
+file path=var/apache2/2.2/icons/small/key.png
+file path=var/apache2/2.2/icons/small/movie.gif
+file path=var/apache2/2.2/icons/small/movie.png
+file path=var/apache2/2.2/icons/small/patch.gif
+file path=var/apache2/2.2/icons/small/patch.png
+file path=var/apache2/2.2/icons/small/ps.gif
+file path=var/apache2/2.2/icons/small/ps.png
+file path=var/apache2/2.2/icons/small/rainbow.gif
+file path=var/apache2/2.2/icons/small/rainbow.png
+file path=var/apache2/2.2/icons/small/sound.gif
+file path=var/apache2/2.2/icons/small/sound.png
+file path=var/apache2/2.2/icons/small/sound2.gif
+file path=var/apache2/2.2/icons/small/sound2.png
+file path=var/apache2/2.2/icons/small/tar.gif
+file path=var/apache2/2.2/icons/small/tar.png
+file path=var/apache2/2.2/icons/small/text.gif
+file path=var/apache2/2.2/icons/small/text.png
+file path=var/apache2/2.2/icons/small/transfer.gif
+file path=var/apache2/2.2/icons/small/transfer.png
+file path=var/apache2/2.2/icons/small/unknown.gif
+file path=var/apache2/2.2/icons/small/unknown.png
+file path=var/apache2/2.2/icons/small/uu.gif
+file path=var/apache2/2.2/icons/small/uu.png
+file path=var/apache2/2.2/icons/sound1.gif
+file path=var/apache2/2.2/icons/sound1.png
+file path=var/apache2/2.2/icons/sound2.gif
+file path=var/apache2/2.2/icons/sound2.png
+file path=var/apache2/2.2/icons/sphere1.gif
+file path=var/apache2/2.2/icons/sphere1.png
+file path=var/apache2/2.2/icons/sphere2.gif
+file path=var/apache2/2.2/icons/sphere2.png
+file path=var/apache2/2.2/icons/tar.gif
+file path=var/apache2/2.2/icons/tar.png
+file path=var/apache2/2.2/icons/tex.gif
+file path=var/apache2/2.2/icons/tex.png
+file path=var/apache2/2.2/icons/text.gif
+file path=var/apache2/2.2/icons/text.png
+file path=var/apache2/2.2/icons/transfer.gif
+file path=var/apache2/2.2/icons/transfer.png
+file path=var/apache2/2.2/icons/unknown.gif
+file path=var/apache2/2.2/icons/unknown.png
+file path=var/apache2/2.2/icons/up.gif
+file path=var/apache2/2.2/icons/up.png
+file path=var/apache2/2.2/icons/uu.gif
+file path=var/apache2/2.2/icons/uu.png
+file path=var/apache2/2.2/icons/uuencoded.gif
+file path=var/apache2/2.2/icons/uuencoded.png
+file path=var/apache2/2.2/icons/world1.gif
+file path=var/apache2/2.2/icons/world1.png
+file path=var/apache2/2.2/icons/world2.gif
+file path=var/apache2/2.2/icons/world2.png
+link path=usr/apache2/2.2/bin/64 target=$(MACH64)
+link path=usr/apache2/2.2/build/64 target=$(MACH64)
+link path=usr/apache2/2.2/libexec/64 target=$(MACH64)
+link path=usr/bin/$(MACH64)/ab target=../../apache2/2.2/bin/$(MACH64)/ab
+link path=usr/bin/$(MACH64)/apxs target=../../apache2/2.2/bin/$(MACH64)/apxs
+link path=usr/bin/$(MACH64)/dbmmanage target=../../apache2/2.2/bin/$(MACH64)/dbmmanage
+link path=usr/bin/$(MACH64)/htcacheclean target=../../apache2/2.2/bin/$(MACH64)/htcacheclean
+link path=usr/bin/$(MACH64)/htdbm target=../../apache2/2.2/bin/$(MACH64)/htdbm
+link path=usr/bin/$(MACH64)/htdigest target=../../apache2/2.2/bin/$(MACH64)/htdigest
+link path=usr/bin/$(MACH64)/htpasswd target=../../apache2/2.2/bin/$(MACH64)/htpasswd
+link path=usr/bin/$(MACH64)/httxt2dbm target=../../apache2/2.2/bin/$(MACH64)/httxt2dbm
+link path=usr/bin/$(MACH64)/logresolve target=../../apache2/2.2/bin/$(MACH64)/logresolve
+link path=usr/bin/$(MACH64)/rotatelogs target=../../apache2/2.2/bin/$(MACH64)/rotatelogs
+link path=usr/bin/ab target=../apache2/2.2/bin/ab
+link path=usr/bin/apxs target=../apache2/2.2/bin/apxs
+link path=usr/bin/dbmmanage target=../apache2/2.2/bin/dbmmanage
+link path=usr/bin/htcacheclean target=../apache2/2.2/bin/htcacheclean
+link path=usr/bin/htdbm target=../apache2/2.2/bin/htdbm
+link path=usr/bin/htdigest target=../apache2/2.2/bin/htdigest
+link path=usr/bin/htpasswd target=../apache2/2.2/bin/htpasswd
+link path=usr/bin/httxt2dbm target=../apache2/2.2/bin/httxt2dbm
+link path=usr/bin/logresolve target=../apache2/2.2/bin/logresolve
+link path=usr/bin/rotatelogs target=../apache2/2.2/bin/rotatelogs
+link path=var/apache2/2.2/libexec/64 target=$(MACH64)
+
+legacy	pkg=SUNWapch22u \
+	name="Apache Web Server V2.2 (usr)" \
+	desc="The Apache HTTP Server Version 2.2 (usr components)"
+
+legacy	pkg=SUNWapch22r \
+	name="Apache Web Server V2.2 (root)" \
+	desc="The Apache HTTP server Version 2.2 (root components)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/apache-sed.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,58 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22/module/apache-sed@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="mod_sed plugin for Apache Web Server V2.2"
+set name=pkg.description \
+    value="mod_sed plugin for Apache Web Server Version 2.2"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://httpd.apache.org/docs/2.3/mod/mod_sed.html"
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2009/122
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license LICENSE license="Apache v2.0"
+
+dir path=etc
+dir path=etc/apache2
+dir path=etc/apache2/2.2
+dir path=etc/apache2/2.2/samples-conf.d
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/libexec
+dir path=usr/apache2/2.2/libexec/$(MACH64)
+file path=etc/apache2/2.2/samples-conf.d/sed.conf
+file path=usr/apache2/2.2/libexec/mod_sed.so
+file path=usr/apache2/2.2/libexec/$(MACH64)/mod_sed.so
+
+legacy	pkg=SUNWapch22m-sed \
+	name="mod_sed plugin for Apache Web Server V2.2" \
+	desc="mod_sed plugin for Apache Web Server Version 2.2"
+
+legacy	pkg=SUNWapch22r-sed \
+	name="mod_sed plugin for Apache Web Server V2.2 (root)" \
+	desc="mod_sed plugin for Apache Web Server Version 2.2 (root component)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/documentation.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,857 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+set name=pkg.fmri \
+    value=pkg:/web/server/apache-22/documentation@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="Apache Web Server V2.2 Documentation"
+set name=pkg.description \
+    value="The Apache HTTP Server Version 2.2 (documentation)"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value="http://httpd.apache.org/"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2009/565
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+license LICENSE license="Apache v2.0"
+
+dir path=usr
+dir path=usr/apache2
+dir path=usr/apache2/2.2
+dir path=usr/apache2/2.2/man
+dir path=usr/apache2/2.2/man/man1
+dir path=usr/apache2/2.2/man/man8
+dir path=usr/apache2/2.2/manual
+dir path=usr/apache2/2.2/manual/developer
+dir path=usr/apache2/2.2/manual/faq
+dir path=usr/apache2/2.2/manual/howto
+dir path=usr/apache2/2.2/manual/images
+dir path=usr/apache2/2.2/manual/misc
+dir path=usr/apache2/2.2/manual/mod
+dir path=usr/apache2/2.2/manual/platform
+dir path=usr/apache2/2.2/manual/programs
+dir path=usr/apache2/2.2/manual/rewrite
+dir path=usr/apache2/2.2/manual/ssl
+dir path=usr/apache2/2.2/manual/style
+dir path=usr/apache2/2.2/manual/style/css
+dir path=usr/apache2/2.2/manual/style/lang
+dir path=usr/apache2/2.2/manual/style/latex
+dir path=usr/apache2/2.2/manual/style/xsl
+dir path=usr/apache2/2.2/manual/style/xsl/util
+dir path=usr/apache2/2.2/manual/vhosts
+dir path=usr/share
+dir path=usr/share/man
+dir path=usr/share/man/man1m
+dir path=usr/share/man/man8
+file path=usr/apache2/2.2/man/man8/ab.8
+file path=usr/apache2/2.2/man/man8/apachectl.8
+file path=usr/apache2/2.2/man/man8/apxs.8
+file path=usr/apache2/2.2/man/man8/htcacheclean.8
+file path=usr/apache2/2.2/man/man8/httpd.8
+file path=usr/apache2/2.2/man/man8/logresolve.8
+file path=usr/apache2/2.2/man/man8/rotatelogs.8
+file path=usr/apache2/2.2/man/man8/suexec.8
+file path=usr/apache2/2.2/man/man1/htdigest.1
+file path=usr/apache2/2.2/man/man1/htpasswd.1
+file path=usr/apache2/2.2/man/man1/dbmmanage.1
+file path=usr/apache2/2.2/man/man1/htdbm.1
+file path=usr/apache2/2.2/manual/LICENSE
+file path=usr/apache2/2.2/manual/bind.html
+file path=usr/apache2/2.2/manual/bind.html.de
+file path=usr/apache2/2.2/manual/bind.html.en
+file path=usr/apache2/2.2/manual/bind.html.fr
+file path=usr/apache2/2.2/manual/bind.html.ja.utf8
+file path=usr/apache2/2.2/manual/bind.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/bind.html.tr.utf8
+file path=usr/apache2/2.2/manual/caching.html
+file path=usr/apache2/2.2/manual/caching.html.en
+file path=usr/apache2/2.2/manual/caching.html.fr
+file path=usr/apache2/2.2/manual/caching.html.tr.utf8
+file path=usr/apache2/2.2/manual/configuring.html
+file path=usr/apache2/2.2/manual/configuring.html.de
+file path=usr/apache2/2.2/manual/configuring.html.en
+file path=usr/apache2/2.2/manual/configuring.html.fr
+file path=usr/apache2/2.2/manual/configuring.html.ja.utf8
+file path=usr/apache2/2.2/manual/configuring.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/configuring.html.tr.utf8
+file path=usr/apache2/2.2/manual/content-negotiation.html
+file path=usr/apache2/2.2/manual/content-negotiation.html.en
+file path=usr/apache2/2.2/manual/content-negotiation.html.fr
+file path=usr/apache2/2.2/manual/content-negotiation.html.ja.utf8
+file path=usr/apache2/2.2/manual/content-negotiation.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/content-negotiation.html.tr.utf8
+file path=usr/apache2/2.2/manual/convenience.map
+file path=usr/apache2/2.2/manual/mod/mod_charset_lite.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_dav.html
+file path=usr/apache2/2.2/manual/mod/mod_dav.html.en
+file path=usr/apache2/2.2/manual/mod/mod_dav.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_dav.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_dav_fs.html
+file path=usr/apache2/2.2/manual/mod/mod_dav_fs.html.en
+file path=usr/apache2/2.2/manual/mod/mod_dav_fs.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_dav_fs.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_dav_lock.html
+file path=usr/apache2/2.2/manual/mod/mod_dav_lock.html.en
+file path=usr/apache2/2.2/manual/mod/mod_dav_lock.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_dbd.html
+file path=usr/apache2/2.2/manual/mod/mod_dbd.html.en
+file path=usr/apache2/2.2/manual/mod/mod_deflate.html
+file path=usr/apache2/2.2/manual/mod/mod_deflate.html.en
+file path=usr/apache2/2.2/manual/mod/mod_deflate.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_deflate.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_dir.html
+file path=usr/apache2/2.2/manual/mod/mod_dir.html.en
+file path=usr/apache2/2.2/manual/mod/mod_dir.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_dir.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_dir.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_disk_cache.html
+file path=usr/apache2/2.2/manual/mod/mod_disk_cache.html.en
+file path=usr/apache2/2.2/manual/mod/mod_disk_cache.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_disk_cache.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_dumpio.html
+file path=usr/apache2/2.2/manual/mod/mod_dumpio.html.en
+file path=usr/apache2/2.2/manual/mod/mod_dumpio.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_echo.html
+file path=usr/apache2/2.2/manual/mod/mod_echo.html.en
+file path=usr/apache2/2.2/manual/mod/mod_echo.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_echo.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_env.html
+file path=usr/apache2/2.2/manual/mod/mod_env.html.en
+file path=usr/apache2/2.2/manual/mod/mod_env.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_env.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_env.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_example.html
+file path=usr/apache2/2.2/manual/mod/mod_example.html.en
+file path=usr/apache2/2.2/manual/mod/mod_example.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_expires.html
+file path=usr/apache2/2.2/manual/mod/mod_expires.html.en
+file path=usr/apache2/2.2/manual/mod/mod_expires.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_expires.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_ext_filter.html
+file path=usr/apache2/2.2/manual/mod/mod_ext_filter.html.en
+file path=usr/apache2/2.2/manual/mod/mod_ext_filter.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_ext_filter.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_file_cache.html
+file path=usr/apache2/2.2/manual/mod/mod_file_cache.html.en
+file path=usr/apache2/2.2/manual/mod/mod_file_cache.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_filter.html
+file path=usr/apache2/2.2/manual/mod/mod_filter.html.en
+file path=usr/apache2/2.2/manual/mod/mod_headers.html
+file path=usr/apache2/2.2/manual/mod/mod_headers.html.en
+file path=usr/apache2/2.2/manual/mod/mod_headers.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_headers.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_ident.html
+file path=usr/apache2/2.2/manual/mod/mod_ident.html.en
+file path=usr/apache2/2.2/manual/mod/mod_ident.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_ident.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_imagemap.html
+file path=usr/apache2/2.2/manual/mod/mod_imagemap.html.en
+file path=usr/apache2/2.2/manual/mod/mod_imagemap.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_include.html
+file path=usr/apache2/2.2/manual/mod/mod_include.html.en
+file path=usr/apache2/2.2/manual/mod/mod_include.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_info.html
+file path=usr/apache2/2.2/manual/mod/mod_info.html.en
+file path=usr/apache2/2.2/manual/mod/mod_info.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_info.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_isapi.html
+file path=usr/apache2/2.2/manual/mod/mod_isapi.html.en
+file path=usr/apache2/2.2/manual/mod/mod_isapi.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_ldap.html
+file path=usr/apache2/2.2/manual/mod/mod_ldap.html.en
+file path=usr/apache2/2.2/manual/mod/mod_log_config.html
+file path=usr/apache2/2.2/manual/mod/mod_log_config.html.en
+file path=usr/apache2/2.2/manual/mod/mod_log_config.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_log_config.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_log_config.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_log_forensic.html
+file path=usr/apache2/2.2/manual/mod/mod_log_forensic.html.en
+file path=usr/apache2/2.2/manual/mod/mod_log_forensic.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_log_forensic.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_logio.html
+file path=usr/apache2/2.2/manual/mod/mod_logio.html.en
+file path=usr/apache2/2.2/manual/mod/mod_logio.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_logio.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_logio.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_mem_cache.html
+file path=usr/apache2/2.2/manual/mod/mod_mem_cache.html.en
+file path=usr/apache2/2.2/manual/mod/mod_mem_cache.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_mem_cache.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_mime.html
+file path=usr/apache2/2.2/manual/mod/mod_mime.html.en
+file path=usr/apache2/2.2/manual/mod/mod_mime.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_mime_magic.html
+file path=usr/apache2/2.2/manual/mod/mod_mime_magic.html.en
+file path=usr/apache2/2.2/manual/mod/directives.html.en
+file path=usr/apache2/2.2/manual/mod/directives.html.es
+file path=usr/apache2/2.2/manual/mod/directives.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/directives.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/directives.html.ru.koi8-r
+file path=usr/apache2/2.2/manual/mod/directives.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/event.html
+file path=usr/apache2/2.2/manual/mod/event.html.en
+file path=usr/apache2/2.2/manual/mod/index.html
+file path=usr/apache2/2.2/manual/mod/index.html.de
+file path=usr/apache2/2.2/manual/mod/index.html.en
+file path=usr/apache2/2.2/manual/mod/index.html.es
+file path=usr/apache2/2.2/manual/mod/index.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/index.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/index.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_actions.html
+file path=usr/apache2/2.2/manual/mod/mod_actions.html.de
+file path=usr/apache2/2.2/manual/mod/mod_actions.html.en
+file path=usr/apache2/2.2/manual/mod/mod_alias.html
+file path=usr/apache2/2.2/manual/mod/mod_alias.html.en
+file path=usr/apache2/2.2/manual/mod/mod_alias.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_alias.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_alias.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_asis.html
+file path=usr/apache2/2.2/manual/mod/mod_asis.html.en
+file path=usr/apache2/2.2/manual/mod/mod_asis.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_asis.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_auth_basic.html
+file path=usr/apache2/2.2/manual/mod/mod_auth_basic.html.en
+file path=usr/apache2/2.2/manual/mod/mod_auth_basic.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_auth_basic.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_auth_digest.html
+file path=usr/apache2/2.2/manual/mod/mod_auth_digest.html.en
+file path=usr/apache2/2.2/manual/mod/mod_auth_digest.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authn_alias.html
+file path=usr/apache2/2.2/manual/mod/mod_authn_alias.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authn_anon.html
+file path=usr/apache2/2.2/manual/mod/mod_authn_anon.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authn_anon.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_authn_anon.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authn_dbd.html
+file path=usr/apache2/2.2/manual/mod/mod_authn_dbd.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authn_dbm.html
+file path=usr/apache2/2.2/manual/mod/mod_authn_dbm.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authn_dbm.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_authn_dbm.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authn_default.html
+file path=usr/apache2/2.2/manual/mod/mod_authn_default.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authn_default.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_authn_default.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authn_file.html
+file path=usr/apache2/2.2/manual/mod/mod_authn_file.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authn_file.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_authn_file.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authnz_ldap.html
+file path=usr/apache2/2.2/manual/mod/mod_authnz_ldap.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authz_dbm.html
+file path=usr/apache2/2.2/manual/mod/mod_authz_dbm.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authz_dbm.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authz_default.html
+file path=usr/apache2/2.2/manual/mod/mod_authz_default.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authz_default.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_authz_default.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authz_groupfile.html
+file path=usr/apache2/2.2/manual/mod/mod_authz_groupfile.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authz_groupfile.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_authz_groupfile.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authz_host.html
+file path=usr/apache2/2.2/manual/mod/mod_authz_host.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authz_host.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_authz_host.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authz_owner.html
+file path=usr/apache2/2.2/manual/mod/mod_authz_owner.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authz_owner.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_authz_owner.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_authz_user.html
+file path=usr/apache2/2.2/manual/mod/mod_authz_user.html.en
+file path=usr/apache2/2.2/manual/mod/mod_authz_user.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_authz_user.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_autoindex.html
+file path=usr/apache2/2.2/manual/mod/mod_autoindex.html.en
+file path=usr/apache2/2.2/manual/mod/mod_autoindex.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_autoindex.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_autoindex.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_cache.html
+file path=usr/apache2/2.2/manual/mod/mod_cache.html.en
+file path=usr/apache2/2.2/manual/mod/mod_cache.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_cache.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_cern_meta.html
+file path=usr/apache2/2.2/manual/mod/mod_cern_meta.html.en
+file path=usr/apache2/2.2/manual/mod/mod_cern_meta.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_cgi.html
+file path=usr/apache2/2.2/manual/mod/mod_cgi.html.en
+file path=usr/apache2/2.2/manual/mod/mod_cgi.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_cgi.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_cgid.html
+file path=usr/apache2/2.2/manual/mod/mod_cgid.html.en
+file path=usr/apache2/2.2/manual/mod/mod_cgid.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_cgid.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_charset_lite.html
+file path=usr/apache2/2.2/manual/mod/mod_charset_lite.html.en
+file path=usr/apache2/2.2/manual/images/caching_fig1.gif
+file path=usr/apache2/2.2/manual/images/caching_fig1.png
+file path=usr/apache2/2.2/manual/images/caching_fig1.tr.png
+file path=usr/apache2/2.2/manual/images/custom_errordocs.png
+file path=usr/apache2/2.2/manual/images/down.gif
+file path=usr/apache2/2.2/manual/images/favicon.ico
+file path=usr/apache2/2.2/manual/images/feather.gif
+file path=usr/apache2/2.2/manual/images/feather.png
+file path=usr/apache2/2.2/manual/images/filter_arch.png
+file path=usr/apache2/2.2/manual/images/filter_arch.tr.png
+file path=usr/apache2/2.2/manual/images/home.gif
+file path=usr/apache2/2.2/manual/images/index.gif
+file path=usr/apache2/2.2/manual/images/left.gif
+file path=usr/apache2/2.2/manual/images/mod_filter_new.gif
+file path=usr/apache2/2.2/manual/images/mod_filter_new.png
+file path=usr/apache2/2.2/manual/images/mod_filter_new.tr.png
+file path=usr/apache2/2.2/manual/images/mod_filter_old.gif
+file path=usr/apache2/2.2/manual/images/mod_rewrite_fig1.gif
+file path=usr/apache2/2.2/manual/images/mod_rewrite_fig1.png
+file path=usr/apache2/2.2/manual/images/mod_rewrite_fig2.gif
+file path=usr/apache2/2.2/manual/images/mod_rewrite_fig2.png
+file path=usr/apache2/2.2/manual/images/pixel.gif
+file path=usr/apache2/2.2/manual/images/right.gif
+file path=usr/apache2/2.2/manual/images/ssl_intro_fig1.gif
+file path=usr/apache2/2.2/manual/images/ssl_intro_fig1.png
+file path=usr/apache2/2.2/manual/images/ssl_intro_fig2.gif
+file path=usr/apache2/2.2/manual/images/ssl_intro_fig2.png
+file path=usr/apache2/2.2/manual/images/ssl_intro_fig3.gif
+file path=usr/apache2/2.2/manual/images/ssl_intro_fig3.png
+file path=usr/apache2/2.2/manual/images/sub.gif
+file path=usr/apache2/2.2/manual/images/up.gif
+file path=usr/apache2/2.2/manual/index.html
+file path=usr/apache2/2.2/manual/index.html.de
+file path=usr/apache2/2.2/manual/index.html.en
+file path=usr/apache2/2.2/manual/index.html.es
+file path=usr/apache2/2.2/manual/index.html.fr
+file path=usr/apache2/2.2/manual/index.html.ja.utf8
+file path=usr/apache2/2.2/manual/index.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/index.html.pt-br
+file path=usr/apache2/2.2/manual/index.html.tr.utf8
+file path=usr/apache2/2.2/manual/install.html
+file path=usr/apache2/2.2/manual/install.html.de
+file path=usr/apache2/2.2/manual/install.html.en
+file path=usr/apache2/2.2/manual/install.html.es
+file path=usr/apache2/2.2/manual/install.html.fr
+file path=usr/apache2/2.2/manual/install.html.ja.utf8
+file path=usr/apache2/2.2/manual/install.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/install.html.tr.utf8
+file path=usr/apache2/2.2/manual/invoking.html
+file path=usr/apache2/2.2/manual/invoking.html.de
+file path=usr/apache2/2.2/manual/invoking.html.en
+file path=usr/apache2/2.2/manual/invoking.html.es
+file path=usr/apache2/2.2/manual/invoking.html.fr
+file path=usr/apache2/2.2/manual/invoking.html.ja.utf8
+file path=usr/apache2/2.2/manual/invoking.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/invoking.html.ru.koi8-r
+file path=usr/apache2/2.2/manual/invoking.html.tr.utf8
+file path=usr/apache2/2.2/manual/license.html
+file path=usr/apache2/2.2/manual/license.html.en
+file path=usr/apache2/2.2/manual/logs.html
+file path=usr/apache2/2.2/manual/logs.html.en
+file path=usr/apache2/2.2/manual/logs.html.ja.utf8
+file path=usr/apache2/2.2/manual/logs.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/logs.html.tr.utf8
+file path=usr/apache2/2.2/manual/misc/index.html
+file path=usr/apache2/2.2/manual/misc/index.html.en
+file path=usr/apache2/2.2/manual/misc/index.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/misc/index.html.tr.utf8
+file path=usr/apache2/2.2/manual/misc/password_encryptions.html
+file path=usr/apache2/2.2/manual/misc/password_encryptions.html.en
+file path=usr/apache2/2.2/manual/misc/perf-tuning.html
+file path=usr/apache2/2.2/manual/misc/perf-tuning.html.en
+file path=usr/apache2/2.2/manual/misc/perf-tuning.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/misc/perf-tuning.html.tr.utf8
+file path=usr/apache2/2.2/manual/misc/relevant_standards.html
+file path=usr/apache2/2.2/manual/misc/relevant_standards.html.en
+file path=usr/apache2/2.2/manual/misc/relevant_standards.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/misc/rewriteguide.html
+file path=usr/apache2/2.2/manual/misc/rewriteguide.html.en
+file path=usr/apache2/2.2/manual/misc/rewriteguide.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/misc/security_tips.html
+file path=usr/apache2/2.2/manual/misc/security_tips.html.en
+file path=usr/apache2/2.2/manual/misc/security_tips.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/misc/security_tips.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/beos.html
+file path=usr/apache2/2.2/manual/mod/beos.html.de
+file path=usr/apache2/2.2/manual/mod/beos.html.en
+file path=usr/apache2/2.2/manual/mod/beos.html.es
+file path=usr/apache2/2.2/manual/mod/beos.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/core.html
+file path=usr/apache2/2.2/manual/mod/core.html.de
+file path=usr/apache2/2.2/manual/mod/core.html.en
+file path=usr/apache2/2.2/manual/mod/core.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/core.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/directive-dict.html
+file path=usr/apache2/2.2/manual/mod/directive-dict.html.en
+file path=usr/apache2/2.2/manual/mod/directive-dict.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/directive-dict.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/directive-dict.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/directives.html
+file path=usr/apache2/2.2/manual/mod/directives.html.de
+file path=usr/apache2/2.2/manual/developer/documenting.html
+file path=usr/apache2/2.2/manual/developer/API.html.en
+file path=usr/apache2/2.2/manual/developer/documenting.html.en
+file path=usr/apache2/2.2/manual/developer/filters.html.en
+file path=usr/apache2/2.2/manual/custom-error.html
+file path=usr/apache2/2.2/manual/custom-error.html.ja.utf8
+file path=usr/apache2/2.2/manual/developer/debugging.html.en
+file path=usr/apache2/2.2/manual/developer/filters.html
+file path=usr/apache2/2.2/manual/developer/hooks.html
+file path=usr/apache2/2.2/manual/custom-error.html.es
+file path=usr/apache2/2.2/manual/custom-error.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/custom-error.html.en
+file path=usr/apache2/2.2/manual/developer/API.html
+file path=usr/apache2/2.2/manual/custom-error.html.tr.utf8
+file path=usr/apache2/2.2/manual/developer/debugging.html
+file path=usr/apache2/2.2/manual/developer/hooks.html.en
+file path=usr/apache2/2.2/manual/developer/index.html
+file path=usr/apache2/2.2/manual/developer/index.html.en
+file path=usr/apache2/2.2/manual/developer/modules.html
+file path=usr/apache2/2.2/manual/developer/modules.html.en
+file path=usr/apache2/2.2/manual/developer/modules.html.ja.utf8
+file path=usr/apache2/2.2/manual/developer/request.html
+file path=usr/apache2/2.2/manual/developer/request.html.en
+file path=usr/apache2/2.2/manual/developer/thread_safety.html
+file path=usr/apache2/2.2/manual/developer/thread_safety.html.en
+file path=usr/apache2/2.2/manual/dns-caveats.html
+file path=usr/apache2/2.2/manual/dns-caveats.html.en
+file path=usr/apache2/2.2/manual/dns-caveats.html.ja.utf8
+file path=usr/apache2/2.2/manual/dns-caveats.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/dns-caveats.html.tr.utf8
+file path=usr/apache2/2.2/manual/dso.html
+file path=usr/apache2/2.2/manual/dso.html.en
+file path=usr/apache2/2.2/manual/dso.html.ja.utf8
+file path=usr/apache2/2.2/manual/dso.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/dso.html.tr.utf8
+file path=usr/apache2/2.2/manual/env.html
+file path=usr/apache2/2.2/manual/env.html.en
+file path=usr/apache2/2.2/manual/env.html.ja.utf8
+file path=usr/apache2/2.2/manual/env.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/env.html.tr.utf8
+file path=usr/apache2/2.2/manual/faq/index.html
+file path=usr/apache2/2.2/manual/faq/index.html.en
+file path=usr/apache2/2.2/manual/faq/index.html.tr.utf8
+file path=usr/apache2/2.2/manual/filter.html
+file path=usr/apache2/2.2/manual/filter.html.en
+file path=usr/apache2/2.2/manual/filter.html.es
+file path=usr/apache2/2.2/manual/filter.html.fr
+file path=usr/apache2/2.2/manual/filter.html.ja.utf8
+file path=usr/apache2/2.2/manual/filter.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/filter.html.tr.utf8
+file path=usr/apache2/2.2/manual/glossary.html
+file path=usr/apache2/2.2/manual/glossary.html.de
+file path=usr/apache2/2.2/manual/glossary.html.en
+file path=usr/apache2/2.2/manual/glossary.html.es
+file path=usr/apache2/2.2/manual/glossary.html.fr
+file path=usr/apache2/2.2/manual/glossary.html.ja.utf8
+file path=usr/apache2/2.2/manual/glossary.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/glossary.html.tr.utf8
+file path=usr/apache2/2.2/manual/handler.html
+file path=usr/apache2/2.2/manual/handler.html.en
+file path=usr/apache2/2.2/manual/handler.html.es
+file path=usr/apache2/2.2/manual/handler.html.fr
+file path=usr/apache2/2.2/manual/handler.html.ja.utf8
+file path=usr/apache2/2.2/manual/handler.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/handler.html.ru.koi8-r
+file path=usr/apache2/2.2/manual/handler.html.tr.utf8
+file path=usr/apache2/2.2/manual/howto/access.html
+file path=usr/apache2/2.2/manual/howto/access.html.en
+file path=usr/apache2/2.2/manual/howto/auth.html
+file path=usr/apache2/2.2/manual/howto/auth.html.en
+file path=usr/apache2/2.2/manual/howto/auth.html.ja.utf8
+file path=usr/apache2/2.2/manual/howto/auth.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/howto/auth.html.tr.utf8
+file path=usr/apache2/2.2/manual/howto/cgi.html
+file path=usr/apache2/2.2/manual/howto/cgi.html.en
+file path=usr/apache2/2.2/manual/howto/cgi.html.ja.utf8
+file path=usr/apache2/2.2/manual/howto/cgi.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/howto/htaccess.html
+file path=usr/apache2/2.2/manual/howto/htaccess.html.en
+file path=usr/apache2/2.2/manual/howto/htaccess.html.ja.utf8
+file path=usr/apache2/2.2/manual/howto/htaccess.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/howto/htaccess.html.pt-br
+file path=usr/apache2/2.2/manual/howto/index.html
+file path=usr/apache2/2.2/manual/howto/index.html.en
+file path=usr/apache2/2.2/manual/howto/index.html.ja.utf8
+file path=usr/apache2/2.2/manual/howto/index.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/howto/public_html.html
+file path=usr/apache2/2.2/manual/howto/public_html.html.en
+file path=usr/apache2/2.2/manual/howto/public_html.html.ja.utf8
+file path=usr/apache2/2.2/manual/howto/public_html.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/howto/public_html.html.tr.utf8
+file path=usr/apache2/2.2/manual/howto/ssi.html
+file path=usr/apache2/2.2/manual/howto/ssi.html.en
+file path=usr/apache2/2.2/manual/howto/ssi.html.ja.utf8
+file path=usr/apache2/2.2/manual/howto/ssi.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/images/apache_header.gif
+file path=usr/apache2/2.2/manual/mod/mod_actions.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_actions.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_negotiation.html
+file path=usr/apache2/2.2/manual/mod/mod_negotiation.html.en
+file path=usr/apache2/2.2/manual/mod/mod_negotiation.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_nw_ssl.html
+file path=usr/apache2/2.2/manual/mod/mod_nw_ssl.html.en
+file path=usr/apache2/2.2/manual/mod/mod_proxy.html
+file path=usr/apache2/2.2/manual/mod/mod_proxy.html.en
+file path=usr/apache2/2.2/manual/mod/mod_proxy.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_proxy_ajp.html
+file path=usr/apache2/2.2/manual/mod/mod_proxy_ajp.html.en
+file path=usr/apache2/2.2/manual/mod/mod_proxy_ajp.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_proxy_balancer.html
+file path=usr/apache2/2.2/manual/mod/mod_proxy_balancer.html.en
+file path=usr/apache2/2.2/manual/mod/mod_proxy_balancer.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_proxy_connect.html
+file path=usr/apache2/2.2/manual/mod/mod_proxy_connect.html.en
+file path=usr/apache2/2.2/manual/mod/mod_proxy_connect.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_proxy_ftp.html
+file path=usr/apache2/2.2/manual/mod/mod_proxy_ftp.html.en
+file path=usr/apache2/2.2/manual/mod/mod_proxy_http.html
+file path=usr/apache2/2.2/manual/mod/mod_proxy_http.html.en
+file path=usr/apache2/2.2/manual/mod/mod_proxy_scgi.html
+file path=usr/apache2/2.2/manual/mod/mod_proxy_scgi.html.en
+file path=usr/apache2/2.2/manual/mod/mod_reqtimeout.html
+file path=usr/apache2/2.2/manual/mod/mod_reqtimeout.html.en
+file path=usr/apache2/2.2/manual/mod/mod_rewrite.html
+file path=usr/apache2/2.2/manual/mod/mod_rewrite.html.en
+file path=usr/apache2/2.2/manual/mod/mod_setenvif.html
+file path=usr/apache2/2.2/manual/mod/mod_setenvif.html.en
+file path=usr/apache2/2.2/manual/mod/mod_setenvif.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_setenvif.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_setenvif.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_so.html
+file path=usr/apache2/2.2/manual/mod/mod_so.html.en
+file path=usr/apache2/2.2/manual/mod/mod_so.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_so.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_so.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_speling.html
+file path=usr/apache2/2.2/manual/mod/mod_speling.html.en
+file path=usr/apache2/2.2/manual/mod/mod_speling.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_speling.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_ssl.html
+file path=usr/apache2/2.2/manual/mod/mod_ssl.html.en
+file path=usr/apache2/2.2/manual/mod/mod_status.html
+file path=usr/apache2/2.2/manual/mod/mod_status.html.en
+file path=usr/apache2/2.2/manual/mod/mod_status.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_status.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_status.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_substitute.html
+file path=usr/apache2/2.2/manual/mod/mod_substitute.html.en
+file path=usr/apache2/2.2/manual/mod/mod_suexec.html
+file path=usr/apache2/2.2/manual/mod/mod_suexec.html.en
+file path=usr/apache2/2.2/manual/mod/mod_suexec.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_suexec.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_suexec.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_unique_id.html
+file path=usr/apache2/2.2/manual/mod/mod_unique_id.html.en
+file path=usr/apache2/2.2/manual/mod/mod_unique_id.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_unique_id.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_userdir.html
+file path=usr/apache2/2.2/manual/mod/mod_userdir.html.en
+file path=usr/apache2/2.2/manual/mod/mod_userdir.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_userdir.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_userdir.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mod_usertrack.html
+file path=usr/apache2/2.2/manual/mod/mod_usertrack.html.en
+file path=usr/apache2/2.2/manual/mod/mod_version.html
+file path=usr/apache2/2.2/manual/mod/mod_version.html.en
+file path=usr/apache2/2.2/manual/mod/mod_version.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mod_version.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/mod_vhost_alias.html
+file path=usr/apache2/2.2/manual/mod/mod_vhost_alias.html.en
+file path=usr/apache2/2.2/manual/mod/mod_vhost_alias.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/module-dict.html
+file path=usr/apache2/2.2/manual/mod/module-dict.html.en
+file path=usr/apache2/2.2/manual/mod/module-dict.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/module-dict.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/module-dict.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mpm_common.html
+file path=usr/apache2/2.2/manual/mod/mpm_common.html.de
+file path=usr/apache2/2.2/manual/mod/mpm_common.html.en
+file path=usr/apache2/2.2/manual/mod/mpm_common.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mpm_common.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/mpm_netware.html
+file path=usr/apache2/2.2/manual/mod/mpm_netware.html.en
+file path=usr/apache2/2.2/manual/mod/mpm_winnt.html
+file path=usr/apache2/2.2/manual/mod/mpm_winnt.html.de
+file path=usr/apache2/2.2/manual/mod/mpm_winnt.html.en
+file path=usr/apache2/2.2/manual/mod/mpm_winnt.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/mpmt_os2.html
+file path=usr/apache2/2.2/manual/mod/mpmt_os2.html.en
+file path=usr/apache2/2.2/manual/mod/prefork.html
+file path=usr/apache2/2.2/manual/mod/prefork.html.de
+file path=usr/apache2/2.2/manual/mod/prefork.html.en
+file path=usr/apache2/2.2/manual/mod/prefork.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/prefork.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/quickreference.html
+file path=usr/apache2/2.2/manual/mod/quickreference.html.de
+file path=usr/apache2/2.2/manual/mod/quickreference.html.en
+file path=usr/apache2/2.2/manual/mod/quickreference.html.es
+file path=usr/apache2/2.2/manual/mod/quickreference.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/quickreference.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mod/quickreference.html.ru.koi8-r
+file path=usr/apache2/2.2/manual/mod/quickreference.html.tr.utf8
+file path=usr/apache2/2.2/manual/mod/worker.html
+file path=usr/apache2/2.2/manual/mod/worker.html.de
+file path=usr/apache2/2.2/manual/mod/worker.html.en
+file path=usr/apache2/2.2/manual/mod/worker.html.ja.utf8
+file path=usr/apache2/2.2/manual/mod/worker.html.tr.utf8
+file path=usr/apache2/2.2/manual/mpm.html
+file path=usr/apache2/2.2/manual/mpm.html.de
+file path=usr/apache2/2.2/manual/mpm.html.en
+file path=usr/apache2/2.2/manual/mpm.html.es
+file path=usr/apache2/2.2/manual/mpm.html.fr
+file path=usr/apache2/2.2/manual/mpm.html.ja.utf8
+file path=usr/apache2/2.2/manual/mpm.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/mpm.html.tr.utf8
+file path=usr/apache2/2.2/manual/new_features_2_0.html
+file path=usr/apache2/2.2/manual/new_features_2_0.html.de
+file path=usr/apache2/2.2/manual/new_features_2_0.html.en
+file path=usr/apache2/2.2/manual/new_features_2_0.html.fr
+file path=usr/apache2/2.2/manual/new_features_2_0.html.ja.utf8
+file path=usr/apache2/2.2/manual/new_features_2_0.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/new_features_2_0.html.pt-br
+file path=usr/apache2/2.2/manual/new_features_2_0.html.ru.koi8-r
+file path=usr/apache2/2.2/manual/new_features_2_0.html.tr.utf8
+file path=usr/apache2/2.2/manual/new_features_2_2.html
+file path=usr/apache2/2.2/manual/new_features_2_2.html.en
+file path=usr/apache2/2.2/manual/new_features_2_2.html.fr
+file path=usr/apache2/2.2/manual/new_features_2_2.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/new_features_2_2.html.pt-br
+file path=usr/apache2/2.2/manual/new_features_2_2.html.tr.utf8
+file path=usr/apache2/2.2/manual/platform/ebcdic.html
+file path=usr/apache2/2.2/manual/platform/ebcdic.html.en
+file path=usr/apache2/2.2/manual/platform/ebcdic.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/platform/index.html
+file path=usr/apache2/2.2/manual/platform/index.html.en
+file path=usr/apache2/2.2/manual/platform/index.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/platform/netware.html
+file path=usr/apache2/2.2/manual/platform/netware.html.en
+file path=usr/apache2/2.2/manual/platform/netware.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/platform/perf-hp.html
+file path=usr/apache2/2.2/manual/platform/perf-hp.html.en
+file path=usr/apache2/2.2/manual/platform/perf-hp.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/platform/win_compiling.html
+file path=usr/apache2/2.2/manual/platform/win_compiling.html.en
+file path=usr/apache2/2.2/manual/platform/win_compiling.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/platform/windows.html
+file path=usr/apache2/2.2/manual/platform/windows.html.en
+file path=usr/apache2/2.2/manual/platform/windows.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/ab.html
+file path=usr/apache2/2.2/manual/programs/ab.html.en
+file path=usr/apache2/2.2/manual/programs/ab.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/ab.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/apachectl.html
+file path=usr/apache2/2.2/manual/programs/apachectl.html.en
+file path=usr/apache2/2.2/manual/programs/apachectl.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/apachectl.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/apxs.html
+file path=usr/apache2/2.2/manual/programs/apxs.html.en
+file path=usr/apache2/2.2/manual/programs/apxs.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/apxs.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/configure.html
+file path=usr/apache2/2.2/manual/programs/configure.html.en
+file path=usr/apache2/2.2/manual/programs/configure.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/configure.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/dbmmanage.html
+file path=usr/apache2/2.2/manual/programs/dbmmanage.html.en
+file path=usr/apache2/2.2/manual/programs/dbmmanage.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/dbmmanage.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/htcacheclean.html
+file path=usr/apache2/2.2/manual/programs/htcacheclean.html.en
+file path=usr/apache2/2.2/manual/programs/htcacheclean.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/htcacheclean.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/htdbm.html
+file path=usr/apache2/2.2/manual/programs/htdbm.html.en
+file path=usr/apache2/2.2/manual/programs/htdbm.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/htdigest.html
+file path=usr/apache2/2.2/manual/programs/htdigest.html.en
+file path=usr/apache2/2.2/manual/programs/htdigest.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/htdigest.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/htpasswd.html
+file path=usr/apache2/2.2/manual/programs/htpasswd.html.en
+file path=usr/apache2/2.2/manual/programs/htpasswd.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/htpasswd.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/httpd.html
+file path=usr/apache2/2.2/manual/programs/httpd.html.en
+file path=usr/apache2/2.2/manual/programs/httpd.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/httpd.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/httxt2dbm.html
+file path=usr/apache2/2.2/manual/programs/httxt2dbm.html.en
+file path=usr/apache2/2.2/manual/programs/httxt2dbm.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/index.html
+file path=usr/apache2/2.2/manual/programs/index.html.en
+file path=usr/apache2/2.2/manual/programs/index.html.es
+file path=usr/apache2/2.2/manual/programs/index.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/index.html.ru.koi8-r
+file path=usr/apache2/2.2/manual/programs/index.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/logresolve.html
+file path=usr/apache2/2.2/manual/programs/logresolve.html.en
+file path=usr/apache2/2.2/manual/programs/logresolve.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/logresolve.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/other.html
+file path=usr/apache2/2.2/manual/programs/other.html.en
+file path=usr/apache2/2.2/manual/programs/other.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/other.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/rotatelogs.html
+file path=usr/apache2/2.2/manual/programs/rotatelogs.html.en
+file path=usr/apache2/2.2/manual/programs/rotatelogs.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/rotatelogs.html.tr.utf8
+file path=usr/apache2/2.2/manual/programs/suexec.html
+file path=usr/apache2/2.2/manual/programs/suexec.html.en
+file path=usr/apache2/2.2/manual/programs/suexec.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/programs/suexec.html.tr.utf8
+file path=usr/apache2/2.2/manual/rewrite/index.html
+file path=usr/apache2/2.2/manual/rewrite/index.html.en
+file path=usr/apache2/2.2/manual/rewrite/index.html.tr.utf8
+file path=usr/apache2/2.2/manual/rewrite/rewrite_flags.html
+file path=usr/apache2/2.2/manual/rewrite/rewrite_flags.html.en
+file path=usr/apache2/2.2/manual/rewrite/rewrite_guide.html
+file path=usr/apache2/2.2/manual/rewrite/rewrite_guide.html.en
+file path=usr/apache2/2.2/manual/rewrite/rewrite_guide_advanced.html
+file path=usr/apache2/2.2/manual/rewrite/rewrite_guide_advanced.html.en
+file path=usr/apache2/2.2/manual/rewrite/rewrite_intro.html
+file path=usr/apache2/2.2/manual/rewrite/rewrite_intro.html.en
+file path=usr/apache2/2.2/manual/rewrite/rewrite_tech.html
+file path=usr/apache2/2.2/manual/rewrite/rewrite_tech.html.en
+file path=usr/apache2/2.2/manual/sections.html
+file path=usr/apache2/2.2/manual/sections.html.en
+file path=usr/apache2/2.2/manual/sections.html.fr
+file path=usr/apache2/2.2/manual/sections.html.ja.utf8
+file path=usr/apache2/2.2/manual/sections.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/sections.html.tr.utf8
+file path=usr/apache2/2.2/manual/server-wide.html
+file path=usr/apache2/2.2/manual/server-wide.html.en
+file path=usr/apache2/2.2/manual/server-wide.html.ja.utf8
+file path=usr/apache2/2.2/manual/server-wide.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/server-wide.html.tr.utf8
+file path=usr/apache2/2.2/manual/sitemap.html
+file path=usr/apache2/2.2/manual/sitemap.html.de
+file path=usr/apache2/2.2/manual/sitemap.html.en
+file path=usr/apache2/2.2/manual/sitemap.html.es
+file path=usr/apache2/2.2/manual/sitemap.html.ja.utf8
+file path=usr/apache2/2.2/manual/sitemap.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/sitemap.html.tr.utf8
+file path=usr/apache2/2.2/manual/ssl/index.html
+file path=usr/apache2/2.2/manual/ssl/index.html.en
+file path=usr/apache2/2.2/manual/ssl/index.html.ja.utf8
+file path=usr/apache2/2.2/manual/ssl/index.html.tr.utf8
+file path=usr/apache2/2.2/manual/ssl/ssl_compat.html
+file path=usr/apache2/2.2/manual/ssl/ssl_compat.html.en
+file path=usr/apache2/2.2/manual/ssl/ssl_faq.html
+file path=usr/apache2/2.2/manual/ssl/ssl_faq.html.en
+file path=usr/apache2/2.2/manual/ssl/ssl_howto.html
+file path=usr/apache2/2.2/manual/ssl/ssl_howto.html.en
+file path=usr/apache2/2.2/manual/ssl/ssl_intro.html
+file path=usr/apache2/2.2/manual/ssl/ssl_intro.html.en
+file path=usr/apache2/2.2/manual/ssl/ssl_intro.html.ja.utf8
+file path=usr/apache2/2.2/manual/stopping.html
+file path=usr/apache2/2.2/manual/stopping.html.de
+file path=usr/apache2/2.2/manual/stopping.html.en
+file path=usr/apache2/2.2/manual/stopping.html.es
+file path=usr/apache2/2.2/manual/stopping.html.fr
+file path=usr/apache2/2.2/manual/stopping.html.ja.utf8
+file path=usr/apache2/2.2/manual/stopping.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/stopping.html.tr.utf8
+file path=usr/apache2/2.2/manual/style/build.properties
+file path=usr/apache2/2.2/manual/style/common.dtd
+file path=usr/apache2/2.2/manual/style/css/manual-chm.css
+file path=usr/apache2/2.2/manual/style/css/manual-loose-100pc.css
+file path=usr/apache2/2.2/manual/style/css/manual-print.css
+file path=usr/apache2/2.2/manual/style/css/manual-zip-100pc.css
+file path=usr/apache2/2.2/manual/style/css/manual-zip.css
+file path=usr/apache2/2.2/manual/style/css/manual.css
+file path=usr/apache2/2.2/manual/style/faq.dtd
+file path=usr/apache2/2.2/manual/style/lang.dtd
+file path=usr/apache2/2.2/manual/style/latex/atbeginend.sty
+file path=usr/apache2/2.2/manual/style/manualpage.dtd
+file path=usr/apache2/2.2/manual/style/modulesynopsis.dtd
+file path=usr/apache2/2.2/manual/style/sitemap.dtd
+file path=usr/apache2/2.2/manual/style/version.ent
+file path=usr/apache2/2.2/manual/suexec.html
+file path=usr/apache2/2.2/manual/suexec.html.en
+file path=usr/apache2/2.2/manual/suexec.html.ja.utf8
+file path=usr/apache2/2.2/manual/suexec.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/suexec.html.tr.utf8
+file path=usr/apache2/2.2/manual/upgrading.html
+file path=usr/apache2/2.2/manual/upgrading.html.de
+file path=usr/apache2/2.2/manual/upgrading.html.en
+file path=usr/apache2/2.2/manual/upgrading.html.fr
+file path=usr/apache2/2.2/manual/urlmapping.html
+file path=usr/apache2/2.2/manual/urlmapping.html.en
+file path=usr/apache2/2.2/manual/urlmapping.html.ja.utf8
+file path=usr/apache2/2.2/manual/urlmapping.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/urlmapping.html.tr.utf8
+file path=usr/apache2/2.2/manual/vhosts/details.html
+file path=usr/apache2/2.2/manual/vhosts/details.html.en
+file path=usr/apache2/2.2/manual/vhosts/details.html.fr
+file path=usr/apache2/2.2/manual/vhosts/details.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/vhosts/details.html.tr.utf8
+file path=usr/apache2/2.2/manual/vhosts/examples.html
+file path=usr/apache2/2.2/manual/vhosts/examples.html.en
+file path=usr/apache2/2.2/manual/vhosts/examples.html.fr
+file path=usr/apache2/2.2/manual/vhosts/examples.html.ja.utf8
+file path=usr/apache2/2.2/manual/vhosts/examples.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/vhosts/examples.html.tr.utf8
+file path=usr/apache2/2.2/manual/vhosts/fd-limits.html
+file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.en
+file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.fr
+file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.ja.utf8
+file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.tr.utf8
+file path=usr/apache2/2.2/manual/vhosts/index.html
+file path=usr/apache2/2.2/manual/vhosts/index.html.de
+file path=usr/apache2/2.2/manual/vhosts/index.html.en
+file path=usr/apache2/2.2/manual/vhosts/index.html.fr
+file path=usr/apache2/2.2/manual/vhosts/index.html.ja.utf8
+file path=usr/apache2/2.2/manual/vhosts/index.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/vhosts/index.html.ru.koi8-r
+file path=usr/apache2/2.2/manual/vhosts/index.html.tr.utf8
+file path=usr/apache2/2.2/manual/vhosts/ip-based.html
+file path=usr/apache2/2.2/manual/vhosts/ip-based.html.en
+file path=usr/apache2/2.2/manual/vhosts/ip-based.html.fr
+file path=usr/apache2/2.2/manual/vhosts/ip-based.html.ja.utf8
+file path=usr/apache2/2.2/manual/vhosts/ip-based.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/vhosts/ip-based.html.tr.utf8
+file path=usr/apache2/2.2/manual/vhosts/mass.html
+file path=usr/apache2/2.2/manual/vhosts/mass.html.en
+file path=usr/apache2/2.2/manual/vhosts/mass.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/vhosts/mass.html.tr.utf8
+file path=usr/apache2/2.2/manual/vhosts/name-based.html
+file path=usr/apache2/2.2/manual/vhosts/name-based.html.de
+file path=usr/apache2/2.2/manual/vhosts/name-based.html.en
+file path=usr/apache2/2.2/manual/vhosts/name-based.html.fr
+file path=usr/apache2/2.2/manual/vhosts/name-based.html.ja.utf8
+file path=usr/apache2/2.2/manual/vhosts/name-based.html.ko.euc-kr
+file path=usr/apache2/2.2/manual/vhosts/name-based.html.tr.utf8
+file Solaris/apache2.1m.sunman path=usr/share/man/man1m/apache2.1m
+file usr/apache2/2.2/man/man8/ab.8 path=usr/share/man/man8/ab.8
+file usr/apache2/2.2/man/man8/apachectl.8 path=usr/share/man/man8/apachectl.8
+file usr/apache2/2.2/man/man8/apxs.8 path=usr/share/man/man8/apxs.8
+file usr/apache2/2.2/man/man8/htcacheclean.8 path=usr/share/man/man8/htcacheclean.8
+file usr/apache2/2.2/man/man8/httpd.8 path=usr/share/man/man8/httpd.8
+file usr/apache2/2.2/man/man8/logresolve.8 path=usr/share/man/man8/logresolve.8
+file usr/apache2/2.2/man/man8/rotatelogs.8 path=usr/share/man/man8/rotatelogs.8
+file usr/apache2/2.2/man/man8/suexec.8 path=usr/share/man/man8/suexec.8
+
+legacy	pkg=SUNWapch22d \
+	name="Apache Web Server V2.2 Documentation" \
+	desc="The Apache HTTP Server Version 2.2 (documentation)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_auth_gss/README	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,122 @@
+Instructions on testing the negotiateauth
+mozilla extension with Apache.
+
+Introduction
+-----------------
+mod_auth_gss (originally from http://modauthkerb.sourceforge.net/) is an 
+Apache module designed to provide GSSAPI authentication to the Apache 
+web server. Using the "Negotiate" Auth mechanism, which performs full 
+Kerberos authentication based on ticket exchanges and does not require 
+users to insert their passwords to the browser.  In order to use the
+Negotiate method you need a browser supporting it (currently standard IE6.0 or
+Mozilla with the negotiateauth extension). 
+
+The Negotiate mechanism can be only used with Kerberos v5. The module supports 
+both 1.x and 2.x versions of Apache.
+
+The use of SSL encryption is also recommended (but not required) if you are 
+using the Negotiate method.
+
+Installing mod_auth_gss
+------------------------
+
+Prerequisites
+* Apache server installed.
+  Both 1.x and 2.x series of Apache are supported (make sure the apache
+  installation contains the apxs command)
+  In Solaris - the necessary Apache 2.X libraries and headers are 
+  usually found in /usr/apache2.
+* Working C compiler.
+* GSSAPI library (Solaris - /usr/lib/libgss.so.1)
+
+1. Building the Apache module is simple.
+   Find the directory with the source code and Makefile for
+   mod_auth_gss.so.
+   $ make
+
+2. Installing the Apache module requires 'root' privilege.
+   # cp mod_auth_gss.so /usr/apache2/libexec
+
+3. Configure apache to use the new module.
+   Add following line to /etc/apache2/httpd.conf:
+   LoadModule	auth_gss_module	libexec/mod_auth_gss.so
+
+4. Set permissions on the newly created keytab file so that only the
+   apache owner can read the file.  For example, if the apache server
+   is configured to run as user "nobody":
+
+   $ chown nobody /var/apache2/http.keytab
+   $ chmod 400 /var/apache2/http.keytab
+
+5. Create a directory in the apache 'htdocs' tree that will be used
+   to test the GSSAPI/KerberosV5 authentication.
+   $ mkdir /var/apache2/htdocs/krb5
+
+6. Create a ".htaccess" file for the Kerberos directory (step 4),
+   it should contain the following entries:
+	AuthType GSSAPI
+	AuthGSSServiceName HTTP
+        AuthGSSKeytabFile /var/apache2/http.keytab
+        AuthGssDebug 1
+
+   * AuthGssDebug is only needed for testing purposes, it causes extra
+     DEBUG level messages to be displayed in the Apache error_log file
+     (/var/apache2/logs/error_log).
+
+7. Put some content in the Kerberos web directory so the tester can
+   verify that they accessed the page correctly.
+
+8. Set the "AllowOverride" parameter in /etc/apache2/httpd.conf
+   to "All" for the Kerberos directory created in step 5.
+Ex:
+<Location "/var/apache2/htdocs/krb5">
+    Options Indexes FollowSymLinks MultiViews
+    AllowOverride All
+    Require valid-user
+</Location>
+
+Configurating Kerberos
+-----------------------
+
+1. Set up Kerberos Server (if you don't already have one).
+   Follow basic instructions given at docs.sun.com.  Search for
+   "Configuring Kerberos" in the 
+   "Solaris Administration Guide: Security Services" book.
+
+   - The KDC should be a protected, standalone system.  But for 
+     internal testing purposes it may be hosted on the same system 
+     as the Apache web server.
+
+2. Create a Kerberos service key for the Apache server to use for
+   authenticating the clients.  Also create a user principal testing
+   the browser later.
+   The "Negotiate" method used by IIS and IE is "HTTP/<hostname>@REALM".
+   To create this principal for use with the Apache module do the following:
+   [ As 'root', on the Apache server ]
+   a.  /usr/sbin/kadmin
+      - this assumes the KDC setup procedure was followed (step 1).
+   b. kadmin: addprinc -randkey HTTP/<fully_qualified_host_name>
+   c. kadmin: ktadd -k /var/apache2/http.keytab HTTP/<fully_qualified_host_name>
+   d. kadmin: addprinc tester
+   e. kadmin: quit
+
+Testing the 'Negotiate' plugin with mozilla:
+--------------------------------------------
+
+1.  The client system must be configured to use Kerberos.
+    Setup /etc/krb5/krb5.conf to use the KDC created earlier
+
+2.  'kinit'  to get a TGT as the "tester" principal created
+    above in step 2d.
+    $ kinit tester
+         ( enter password )
+
+3.  Use mozilla (with 'negotiateauth' extension installed)
+    to access the Kerberos protected page (created above 
+    in steps 4-6).
+
+    If the pages do not show up, its probably due to
+    a misconfigured Kerberos configuration on the client
+    or the server (or both).  There is very little that
+    needs to be done for Mozilla or apache.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_auth_gss/mod_auth_gss.c	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,605 @@
+/*
+ * Wyllys Ingersoll <[email protected]>
+ *
+ * Based on work by
+ *   Daniel Kouril <[email protected]>
+ *   James E. Robinson, III <[email protected]>
+ *   Daniel Henninger <[email protected]>
+ *   Ludek Sulak <[email protected]>
+ */
+
+/* ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2000-2003 The Apache Software Foundation.  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.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written
+ *    permission, please contact [email protected].
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS 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.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ * Portions of this software are based upon public domain software
+ * originally written at the National Center for Supercomputing Applications,
+ * University of Illinois, Urbana-Champaign.
+ */
+
+/*
+ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+ */
+
+
+#include <sys/types.h>
+#include <strings.h>
+
+#include "httpd.h"
+#include "http_config.h"
+#include "http_core.h"
+#include "http_log.h"
+#include "http_protocol.h"
+#include "http_request.h"
+#include "ap_config.h"
+#include "apr_base64.h"
+#include "apr_lib.h"
+#include "apr_time.h"
+#include "apr_errno.h"
+#include "apr_global_mutex.h"
+#include "apr_strings.h"
+#include "ap_compat.h"
+
+#include <gssapi/gssapi.h>
+#include <gssapi/gssapi_ext.h>
+
+module auth_gss_module;
+
+static void *gss_create_dir_config(apr_pool_t *, char *);
+
+int gss_authenticate(request_rec *);
+
+typedef struct {
+	char *gss_service_name;
+	char *keytab_file;
+	int gss_debug;
+} gss_auth_config;
+
+static const char *set_service_name(cmd_parms *cmd, void *config,
+	const char *name)
+{
+    ((gss_auth_config *) config)->gss_service_name = (char *)name;
+    return NULL;
+}
+
+static const char *set_keytab_file(cmd_parms *cmd, void *config,
+	const char *file)
+{
+	((gss_auth_config *) config)->keytab_file = (char *)file;
+	return NULL;
+}
+
+static const char *set_gss_debug(cmd_parms *cmd, void *config,
+	const char *debugflag)
+{
+	((gss_auth_config *) config)->gss_debug = atoi(debugflag);
+	return NULL;
+}
+
+static const command_rec gss_auth_cmds[] = {
+	AP_INIT_TAKE1("AuthGSSServiceName", set_service_name, NULL,
+		OR_AUTHCFG, "Service name used for authentication."),
+
+	AP_INIT_TAKE1("AuthGSSKeytabFile", set_keytab_file, NULL,
+		OR_AUTHCFG,
+		"Location of Kerberos V5 keytab file."),
+
+	AP_INIT_TAKE1("AuthGssDebug", set_gss_debug, NULL,
+		OR_AUTHCFG,
+		"Enable debug logging in error_log"),
+	{ NULL }
+};
+
+static void
+gss_register_hooks(apr_pool_t *p)
+{
+	ap_hook_check_user_id(gss_authenticate,NULL,NULL,APR_HOOK_MIDDLE);
+}
+
+module AP_MODULE_DECLARE_DATA auth_gss_module = {
+	STANDARD20_MODULE_STUFF,
+	gss_create_dir_config,	/* dir config creater */
+	NULL,			/* dir merger --- default is to override */
+	NULL,			/* server config */
+	NULL,			/* merge server config */
+	gss_auth_cmds,		/* command apr_table_t */
+	gss_register_hooks		/* register hooks */
+};
+
+typedef struct {
+	gss_ctx_id_t context;
+	gss_cred_id_t server_creds;
+} gss_connection_t;
+
+static gss_connection_t *gss_connection = NULL;
+
+static void *
+gss_create_dir_config(apr_pool_t *p, char *d)
+{
+	gss_auth_config *rec =
+		(gss_auth_config *) apr_pcalloc(p, sizeof(gss_auth_config));
+
+	((gss_auth_config *)rec)->gss_service_name = "HTTP";
+	((gss_auth_config *)rec)->keytab_file = "/var/apache2/http.keytab";
+	((gss_auth_config *)rec)->gss_debug = 0;
+
+	return rec;
+}
+
+void log_rerror(const char *file, int line, int level, int status,
+                const request_rec *r, const char *fmt, ...)
+{
+	char errstr[1024];
+	va_list ap;
+
+	va_start(ap, fmt);
+	vsnprintf(errstr, sizeof(errstr), fmt, ap);
+	va_end(ap);
+
+	ap_log_rerror(file, line, level | APLOG_NOERRNO, NULL, r, "%s", errstr);
+}
+
+/*********************************************************************
+ * GSSAPI Authentication
+ ********************************************************************/
+static const char *
+gss_error_msg(apr_pool_t *p, OM_uint32 maj, OM_uint32 min, char *prefix)
+{
+	OM_uint32 maj_stat, min_stat; 
+	OM_uint32 msg_ctx = 0;
+	gss_buffer_desc msg;
+
+	char *err_msg = (char *)apr_pstrdup(p, prefix);
+
+	do {
+		maj_stat = gss_display_status (&min_stat,
+			maj, GSS_C_GSS_CODE,
+			GSS_C_NO_OID, &msg_ctx,
+			&msg);
+		if (GSS_ERROR(maj_stat))
+			break;
+
+		err_msg = apr_pstrcat(p, err_msg, ": ", (char*) msg.value,
+			NULL);
+		(void) gss_release_buffer(&min_stat, &msg);
+      
+		maj_stat = gss_display_status (&min_stat,
+			min, GSS_C_MECH_CODE,
+			GSS_C_NULL_OID, &msg_ctx,
+			&msg);
+		if (!GSS_ERROR(maj_stat)) {
+			err_msg = apr_pstrcat(p, err_msg,
+				" (", (char*) msg.value, ")", NULL);
+			(void) gss_release_buffer(&min_stat, &msg);
+		}
+	} while (!GSS_ERROR(maj_stat) && msg_ctx != 0);
+
+	return (err_msg);
+}
+
+static int
+cleanup_gss_connection(void *data)
+{
+	OM_uint32 ret;
+	OM_uint32 minor_status;
+	gss_connection_t *gss_conn = (gss_connection_t *)data;
+
+	if (data == NULL)
+		return 0; 
+
+	if (gss_conn->context != GSS_C_NO_CONTEXT) {
+		(void) gss_delete_sec_context(&minor_status,
+			&gss_conn->context,
+			GSS_C_NO_BUFFER);
+	}
+
+	if (gss_conn->server_creds != GSS_C_NO_CREDENTIAL) {
+		(void) gss_release_cred(&minor_status, &gss_conn->server_creds);
+	}
+
+	gss_connection = NULL;
+
+	return 0; 
+}
+
+static int
+acquire_server_creds(request_rec *r,
+	gss_auth_config *conf,
+	gss_OID_set mechset,
+	gss_cred_id_t *server_creds)
+{
+	int ret = 0;
+	gss_buffer_desc input_token = GSS_C_EMPTY_BUFFER;
+	OM_uint32 major_status, minor_status, minor_status2;
+	gss_name_t server_name = GSS_C_NO_NAME;
+	char buf[1024];
+
+	snprintf(buf, sizeof(buf), "%s@%s",
+		conf->gss_service_name, r->hostname);
+
+	if (conf->gss_debug)
+   		log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+			"acquire_server_creds for %s", buf);
+
+	input_token.value = buf;
+	input_token.length = strlen(buf) + 1;
+
+	major_status = gss_import_name(&minor_status, &input_token,
+ 			  GSS_C_NT_HOSTBASED_SERVICE,
+			  &server_name);
+
+	if (GSS_ERROR(major_status)) {
+		log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+			"%s", gss_error_msg(r->pool, major_status, minor_status,
+			"gss_import_name() failed"));
+		return (HTTP_INTERNAL_SERVER_ERROR);
+	}
+
+	major_status = gss_acquire_cred(&minor_status, server_name,
+		GSS_C_INDEFINITE,
+		mechset, GSS_C_ACCEPT,
+		server_creds, NULL, NULL);
+
+	if (GSS_ERROR(major_status)) {
+		log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+			"%s", gss_error_msg(r->pool, major_status, minor_status,
+		      "gss_acquire_cred() failed"));
+		ret = HTTP_INTERNAL_SERVER_ERROR;
+	}
+	(void) gss_release_name(&minor_status2, &server_name);
+
+	return (ret);
+}
+
+static int
+authenticate_user_gss(request_rec *r, gss_auth_config *conf,
+	const char *auth_line, char **negotiate_ret_value)
+{
+	int ret = 0;
+	OM_uint32 major_status, minor_status, minor_status2;
+	gss_buffer_desc input_token = GSS_C_EMPTY_BUFFER;
+	gss_buffer_desc output_token = GSS_C_EMPTY_BUFFER;
+	const char *auth_param = NULL;
+	gss_name_t client_name = GSS_C_NO_NAME;
+	gss_cred_id_t delegated_cred = GSS_C_NO_CREDENTIAL;
+
+	if (conf->gss_debug)
+		log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+		"authenticate_user_gss called");
+
+	*negotiate_ret_value = (char *)"";
+
+	if (gss_connection == NULL) {
+		gss_connection = apr_pcalloc(r->connection->pool, sizeof(*gss_connection));
+		if (gss_connection == NULL) {
+			log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+		           "apr_pcalloc() failed (not enough memory)");
+			ret = HTTP_INTERNAL_SERVER_ERROR;
+			goto end;
+		}
+		(void) memset(gss_connection, 0, sizeof(*gss_connection));
+		apr_pool_cleanup_register(r->connection->pool, gss_connection,
+			cleanup_gss_connection, apr_pool_cleanup_null);
+	}
+
+	if (conf->keytab_file) {
+		char *ktname;
+		/*
+		 * We don't use the ap_* calls here, since the string 
+		 * passed to putenv() will become part of the enviroment 
+		 * and shouldn't be free()ed by apache.
+		 */
+		ktname = malloc(strlen("KRB5_KTNAME=") + strlen(conf->keytab_file) + 1);
+		if (ktname == NULL) {
+			log_rerror(APLOG_MARK, APLOG_ERR, 0, r, 
+				"malloc() failed: not enough memory");
+			ret = HTTP_INTERNAL_SERVER_ERROR;
+			goto end;
+		}
+		/*
+		 * Put the keytab name in the environment so that Kerberos
+		 * knows where to look later.
+		 */
+		sprintf(ktname, "KRB5_KTNAME=%s", conf->keytab_file);
+		putenv(ktname);
+		if (conf->gss_debug)
+			log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, "Using keytab: %s", ktname);
+	}
+
+	/* ap_getword() shifts parameter */
+	auth_param = ap_getword_white(r->pool, &auth_line);
+	if (auth_param == NULL) {
+		log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+			"No Authorization parameter in request from client");
+		ret = HTTP_UNAUTHORIZED;
+		goto end;
+	}
+
+	input_token.length = apr_base64_decode_len(auth_param) + 1;
+	input_token.value = apr_pcalloc(r->connection->pool, input_token.length);
+
+	if (input_token.value == NULL) {
+		log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+	   	"apr_pcalloc() failed (not enough memory)");
+		ret = HTTP_INTERNAL_SERVER_ERROR;
+		goto end;
+	}
+	input_token.length = apr_base64_decode(input_token.value, auth_param);
+
+	if (gss_connection->server_creds == GSS_C_NO_CREDENTIAL) {
+		gss_OID_set_desc desiredMechs;
+		gss_OID_desc client_mech_desc;
+		gss_OID client_mechoid = &client_mech_desc;
+		char *mechstr = NULL;
+
+		if (!__gss_get_mech_type(client_mechoid, &input_token)) {
+			mechstr = (char *)__gss_oid_to_mech(client_mechoid);
+		}
+		if (mechstr == NULL) {
+			client_mechoid = GSS_C_NULL_OID;
+			mechstr = "<unknown>";
+		}
+
+		if (conf->gss_debug)   
+			log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+				"Client wants GSS mech: %s", mechstr);
+
+		desiredMechs.count = 1;
+		desiredMechs.elements = client_mechoid;
+
+		/* Get creds using the mechanism that the client requested */
+		ret = acquire_server_creds(r, conf, &desiredMechs,
+			&gss_connection->server_creds);
+		if (ret)
+			goto end;
+	} 
+	/*
+	 * Try to display the server creds information.
+	 */
+	if (conf->gss_debug) {
+		gss_name_t sname;
+		gss_buffer_desc dname;
+
+		major_status = gss_inquire_cred(&minor_status,
+			gss_connection->server_creds,
+			&sname, NULL, NULL, NULL);
+		if (major_status == GSS_S_COMPLETE) {
+			major_status = gss_display_name(&minor_status,
+				sname, &dname, NULL);
+		}
+		if (major_status == GSS_S_COMPLETE) {
+			log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+				"got server creds for: %.*s",
+				(int)dname.length,
+				(char *)dname.value);
+			(void) gss_release_name(&minor_status, &sname);
+			(void) gss_release_buffer(&minor_status, &dname);
+		}
+	}
+
+	major_status = gss_accept_sec_context(&minor_status,
+			  &gss_connection->context,
+			  gss_connection->server_creds,
+			  &input_token,
+			  GSS_C_NO_CHANNEL_BINDINGS,
+			  &client_name,
+			  NULL,
+			  &output_token,
+			  NULL,
+			  NULL,
+			  &delegated_cred);
+
+	if (output_token.length) {
+		char *token = NULL;
+		size_t len;
+		len = apr_base64_encode_len(output_token.length) + 1;
+		token = apr_pcalloc(r->connection->pool, len + 1);
+		if (token == NULL) {
+			log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+			"apr_pcalloc() failed (not enough memory)");
+			ret = HTTP_INTERNAL_SERVER_ERROR;
+			gss_release_buffer(&minor_status2, &output_token);
+			goto end;
+		}
+		apr_base64_encode(token, output_token.value, output_token.length);
+		token[len] = '\0';
+		*negotiate_ret_value = token;
+	}
+
+	if (GSS_ERROR(major_status)) {
+		log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+			"%s", gss_error_msg(r->pool, major_status, minor_status,
+			"gss_accept_sec_context() failed"));
+		/* Don't offer the Negotiate method again if call to GSS layer failed */
+		*negotiate_ret_value = NULL;
+		ret = HTTP_UNAUTHORIZED;
+		goto end;
+	}
+
+	if (major_status == GSS_S_CONTINUE_NEEDED) {
+		/*
+		 * Some GSSAPI mechanisms may require multiple iterations to
+		 * establish authentication.  Most notably, when MUTUAL_AUTHENTICATION
+		 * flag is used, multiple round trips are needed.
+		 */
+		ret = HTTP_UNAUTHORIZED;
+		goto end;
+	}
+
+	if (client_name != GSS_C_NO_NAME) {
+		gss_buffer_desc name_token = GSS_C_EMPTY_BUFFER;
+		major_status = gss_display_name(&minor_status, client_name,
+			&name_token, NULL);
+
+		if (GSS_ERROR(major_status)) {
+			log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+				"%s", gss_error_msg(r->pool, major_status,
+				minor_status,
+				"gss_export_name() failed"));
+			ret = HTTP_INTERNAL_SERVER_ERROR;
+			goto end;
+		}
+		if (name_token.length)  {
+			r->user = apr_pstrdup(r->pool, name_token.value);
+			gss_release_buffer(&minor_status, &name_token);
+		}
+
+		if (conf->gss_debug)
+			log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+				"Authenticated user: %s",
+			r->user ?  r->user : "<unknown>");
+	} 
+	r->ap_auth_type = "Negotiate";
+	ret = OK;
+end:
+	if (delegated_cred)
+		gss_release_cred(&minor_status, &delegated_cred);
+
+	if (output_token.length) 
+		gss_release_buffer(&minor_status, &output_token);
+
+	if (client_name != GSS_C_NO_NAME)
+		gss_release_name(&minor_status, &client_name);
+
+	cleanup_gss_connection(gss_connection);
+
+	return ret;
+}
+
+static int
+already_succeeded(request_rec *r)
+{
+	if (ap_is_initial_req(r) || r->ap_auth_type == NULL)
+		return 0;
+
+	return (strcmp(r->ap_auth_type, "Negotiate") ||
+		(strcmp(r->ap_auth_type, "Basic") && strchr(r->user, '@')));
+}
+
+static void
+note_gss_auth_failure(request_rec *r, const gss_auth_config *conf,
+	char *negotiate_ret_value)
+{
+	const char *auth_name = NULL;
+	int set_basic = 0;
+	char *negoauth_param;
+
+	/* get the user realm specified in .htaccess */
+	auth_name = ap_auth_name(r);
+  
+	if (conf->gss_debug)
+   		log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+			"note_gss_auth_failure: auth_name = %s",
+			auth_name ? auth_name : "<undefined>");
+
+	if (negotiate_ret_value != NULL) {
+		negoauth_param = (*negotiate_ret_value == '\0') ? "Negotiate" :
+			apr_pstrcat(r->pool, "Negotiate ", negotiate_ret_value, NULL);
+		apr_table_add(r->err_headers_out, "WWW-Authenticate", negoauth_param);
+	}
+}
+
+int
+gss_authenticate(request_rec *r)
+{
+	int ret;
+	gss_auth_config *conf = 
+		(gss_auth_config *) ap_get_module_config(r->per_dir_config,
+			&auth_gss_module);
+	const char *auth_type = NULL;
+	const char *auth_line = NULL;
+	const char *type = NULL;
+	char *negotiate_ret_value;
+	static int last_return = HTTP_UNAUTHORIZED;
+
+	/* get the type specified in .htaccess */
+	type = ap_auth_type(r);
+
+	if (conf->gss_debug)
+		log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+		"gss_authenticate: type = %s", type);
+
+	if (type == NULL || (strcasecmp(type, "GSSAPI") != 0)) {
+		return DECLINED;
+	}
+
+	/* get what the user sent us in the HTTP header */
+	auth_line = apr_table_get(r->headers_in, "Authorization");
+
+	if (!auth_line) {
+		if (conf->gss_debug)
+			log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+				"No authentication data found");
+		note_gss_auth_failure(r, conf, "\0");
+		return HTTP_UNAUTHORIZED;
+	}
+	auth_type = ap_getword_white(r->pool, &auth_line);
+
+	if (already_succeeded(r))
+		return last_return;
+
+	if (strcasecmp(auth_type, "Negotiate") == 0) {
+		ret = authenticate_user_gss(r, conf, auth_line, &negotiate_ret_value);
+	} else {
+		ret = HTTP_UNAUTHORIZED;
+	}
+
+	if (ret == HTTP_UNAUTHORIZED) {
+		if (conf->gss_debug)
+			log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+				"Authentication failed.");
+		note_gss_auth_failure(r, conf, negotiate_ret_value);
+	}
+
+	last_return = ret;
+	return ret;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_auth_gss/mod_auth_gss.html	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+    <title>Apache module mod_auth_gss</title>
+  </head>
+  <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+  <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+  vlink="#000080" alink="#FF0000">
+        <div align="CENTER">
+      <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> 
+
+      <h3>Apache HTTP Server Version 1.3</h3>
+    </div>
+
+    <h1 align="CENTER">Module mod_auth_gss</h1>
+    <p>This module provides for user authentication using GSSAPI Authentication.</p>
+
+    <p><a href="module-dict.html#Status"
+    rel="Help"><strong>Status:</strong></a> Extension<br />
+     <a href="module-dict.html#SourceFile"
+    rel="Help"><strong>Source File:</strong></a> mod_auth_gss.c<br />
+     <a href="module-dict.html#ModuleIdentifier"
+    rel="Help"><strong>Module Identifier:</strong></a>
+    auth_gss_module<br />
+
+    <h2>Summary</h2>
+
+    <p>This module implements GSSAPI authentication using the
+    "WWW-Authenticate: Negotiate" protocol.   This typically
+    requires the client and the server systems to have support for
+    GSSAPI and a properly configured security mechanism (usually 
+    Kerberos V5) to be used by GSSAPI.
+
+    <h2>Directives</h2>
+
+    <ul>
+      <li><a href="#authgssservicename">AuthGSSServiceName</a></li>
+      <li><a href="#authgsskeytabfile">AuthGSSKeytabFile</a></li>
+      <li><a href="#aughgssdebug">AuthGSSDebug</a></li>
+    </ul>
+
+    <h2>Using GSSAPI Authentication</h2>
+
+    <p>Before using GSSAPI authentication with Apache, the
+    system must already have been configured to use Kerberos V5
+    authentication.   All of the major Kerberos V5
+    implementation (MIT KRB5, Heimdal, Sun, IBM, HP, Microsoft)
+    currently support Kerberos V5 GSSAPI mechanisms.  
+    Configuring Kerberos is beyond the scope of this document.
+    Adding GSSAPI authentication support to the web extends
+    Single sign on capabilities to the intranet and reduces
+    the risks involved in having users constantly entering
+    username/password combinations when accessing websites.
+    <p>
+    <h3>Configure a Service Principal</h3>
+    <p>The default service principal that mod_auth_gss will
+    try to use is "HTTP/f.q.d.n".  The key for this principal
+    must be stored in a keytab file that is readable by the
+    Apache server, but it should be protected from access
+    by anyone else, and should <b>definitely not</b> be
+    stored in an area that can be browsed by clients.
+    <p>
+    Example:  the Apache server is on host "www.foo.com".
+    Create a principal called "HTTP/www.foo.com".
+    Store the key for this principal in a protected keytab
+    file.   Using MIT Kerberos V5:
+    <br>
+    <pre>
+    $ kadmin
+    $ kadmin> ktadd -k /var/apache/http.keytab  HTTP/www.foo.com
+    $ kadmin> quit
+    </pre>
+
+    <p>Once the keys are created and stored, using GSSAPI
+    authentication is very simple.  Set up the authentication
+    type for the directories being protected to be "GSSAPI".
+    If the keytab or service name chosen is not the defaults
+    ("HTTP" and "/var/apache/http.keytab", respectively), then
+    you may use the above mentioned directives to override
+    the default values. Example:
+<br>
+<pre>
+&lt;Directory /var/apache/htdocs/krb5&gt;
+	AuthType    GSSAPI
+	ServiceName HTTP
+	KeytabFile  /var/apache/http.keytab
+	GssDebug    0
+	Require valid-user
+	AllowOverride All
+&lt;/Directory&gt;
+</pre>
+
+    <p>GSSAPI authentication provides a more secure authentication
+    system, but only works with supporting browsers. As of this writing
+    (April 2004), the only major browsers which support digest
+    authentication are <a href="http://www.mozilla.org">Mozilla 1.7
+    (and later)</a>, and <a href="http://www.microsoft.com/windows/ie/">MS Internet 
+    Explorer 5.0</a>. 
+   
+    <p>It is recommended that this authentication method be combined
+    with TLS security (mod_ssl, for example) to further secure the
+    authentication data being exchanged. 
+
+    <h2><a id="authgssservicename"
+    name="authgssservicename">AuthGSSServiceName</a> directive</h2>
+    <a href="directive-dict.html#Syntax"
+    rel="Help"><strong>Syntax:</strong></a> AuthGSSServiceName
+    <em>name</em><br />
+     <a href="directive-dict.html#Context"
+    rel="Help"><strong>Context:</strong></a> directory,
+    .htaccess<br />
+     <a href="directive-dict.html#Override"
+    rel="Help"><strong>Override:</strong></a> FileInfo, Indexes, Limit, Options<br />
+     <a href="directive-dict.html#Status"
+    rel="Help"><strong>Status:</strong></a> Extension<br />
+     <a href="directive-dict.html#Module"
+    rel="Help"><strong>Module:</strong></a> mod_auth_gss
+
+    <p>The AuthGSSServiceName directive sets the name of Kerberos service
+    principal that the server uses to authenticate the client requests.
+    The name given is appended with the fully qualified host name to
+    make the complete service principal name. Ex:  <b>HTTP/www.fooc.om</b>
+    </p>
+
+    <h2><a id="authgsskeytabfile"
+    name="authgsskeytabfile">AuthGSSKeytabFile</a> directive</h2>
+    <a href="directive-dict.html#Syntax"
+    rel="Help"><strong>Syntax:</strong></a> AuthGSSKeytabFile
+    <em>filename</em><br />
+     <a href="directive-dict.html#Context"
+    rel="Help"><strong>Context:</strong></a> directory,
+    .htaccess<br />
+     <a href="directive-dict.html#Override"
+    rel="Help"><strong>Override:</strong></a> FileInfo, Indexes, Limit, Options<br />
+     <a href="directive-dict.html#Status"
+    rel="Help"><strong>Status:</strong></a> Extension<br />
+     <a href="directive-dict.html#Module"
+    rel="Help"><strong>Module:</strong></a> mod_auth_gss
+
+    <p>The AuthGSSKeytabFile directive sets the filename of the
+    file where the Apache server's Kerberos credentials are stored.
+
+    <h2><a id="authgssdebug"
+    name="authgsskeytabfile">AuthGSSDebug</a> directive</h2>
+    <a href="directive-dict.html#Syntax"
+    rel="Help"><strong>Syntax:</strong></a> AuthGSSDebug
+    <em>0 | 1</em><br />
+     <a href="directive-dict.html#Context"
+    rel="Help"><strong>Context:</strong></a> directory,
+    .htaccess<br />
+     <a href="directive-dict.html#Override"
+    rel="Help"><strong>Override:</strong></a> FileInfo, Indexes, Limit, Options<br />
+     <a href="directive-dict.html#Status"
+    rel="Help"><strong>Status:</strong></a> Extension<br />
+     <a href="directive-dict.html#Module"
+    rel="Help"><strong>Module:</strong></a> mod_auth_gss
+
+    <p>The AuthGSSDebug directive toggles the debug logging
+    facility used by the GSSAPI authentication module.  0 disables
+    debug logging, 1 enables it.
+
+        <hr />
+    <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+    <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+    <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+  </body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_sed/libsed.h	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Use is subject to license terms.
+ *
+ *	Copyright (c) 1984 AT&T
+ *	  All Rights Reserved  	
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *  http://www.apache.org/licenses/LICENSE-2.0. 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
+ * or implied. 
+ * See the License for the specific language governing permissions and
+ * limitations under the License. 
+ */
+
+#ifndef LIBSED_H
+#define LIBSED_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <limits.h>
+
+#include "apr_file_io.h"
+#ifndef PATH_MAX
+#define PATH_MAX MAX_PATH
+#endif
+
+#define SED_NLINES 256
+#define SED_DEPTH 20
+#define SED_LABSIZE 50
+#define SED_ABUFSIZE 20
+
+typedef struct sed_reptr_s sed_reptr_t;
+
+struct sed_reptr_s {
+    sed_reptr_t *next;
+    char        *ad1;
+    char        *ad2;
+    char        *re1;
+    sed_reptr_t *lb1;
+    char        *rhs;
+    int         findex;
+    char        command;
+    int         gfl;
+    char        pfl;
+    char        negfl;
+    int         nrep;
+};
+
+typedef struct sed_label_s sed_label_t;
+
+struct sed_label_s {
+    char        asc[9];
+    sed_reptr_t *chain;
+    sed_reptr_t *address;
+};
+
+typedef apr_status_t (sed_err_fn_t)(void *data, const char *error);
+typedef apr_status_t (sed_write_fn_t)(void *ctx, char *buf, int sz);
+
+typedef struct sed_commands_s sed_commands_t;
+#define NWFILES 11 /* 10 plus one for standard output */
+
+struct sed_commands_s {
+    sed_err_fn_t *errfn;
+    void         *data;
+
+    unsigned     lsize;
+    char         *linebuf;
+    char         *lbend;
+    const char   *saveq;
+
+    char         *cp;
+    char         *lastre;
+    char         *respace;
+    char         sseof;
+    char         *reend;
+    const char   *earg;
+    int          eflag;
+    int          gflag;
+    int          nflag;
+    apr_int64_t  tlno[SED_NLINES];
+    int          nlno;
+    int          depth;
+
+    char         *fname[NWFILES];
+    int          nfiles;
+
+    sed_label_t  ltab[SED_LABSIZE];
+    sed_label_t  *labtab;
+    sed_label_t  *lab;
+    sed_label_t  *labend;
+
+    sed_reptr_t  **cmpend[SED_DEPTH];
+    sed_reptr_t  *ptrspace;
+    sed_reptr_t  *ptrend;
+    sed_reptr_t  *rep;
+    int          nrep;
+    apr_pool_t   *pool;
+    int          canbefinal;
+};
+
+typedef struct sed_eval_s sed_eval_t;
+
+struct sed_eval_s {
+    sed_err_fn_t   *errfn;
+    sed_write_fn_t *writefn;
+    void           *data;
+
+    sed_commands_t *commands;
+
+    apr_int64_t    lnum;
+    void           *fout;
+
+    unsigned       lsize;
+    char           *linebuf;
+    char           *lspend;
+
+    unsigned       hsize;
+    char           *holdbuf;
+    char           *hspend;
+
+    unsigned       gsize;
+    char           *genbuf;
+    char           *lcomend;
+
+    apr_file_t    *fcode[NWFILES];
+    sed_reptr_t    *abuf[SED_ABUFSIZE];
+    sed_reptr_t    **aptr;
+    sed_reptr_t    *pending;
+    unsigned char  *inar;
+    int            nrep;
+
+    int            dolflag;
+    int            sflag;
+    int            jflag;
+    int            delflag;
+    int            lreadyflag;
+    int            quitflag;
+    int            finalflag;
+    int            numpass;
+    int            nullmatch;
+    int            col;
+    apr_pool_t     *pool;
+};
+
+apr_status_t sed_init_commands(sed_commands_t *commands, sed_err_fn_t *errfn, void *data,
+                               apr_pool_t *p);
+apr_status_t sed_compile_string(sed_commands_t *commands, const char *s);
+apr_status_t sed_compile_file(sed_commands_t *commands, apr_file_t *fin);
+char* sed_get_finalize_error(const sed_commands_t *commands, apr_pool_t* pool);
+int sed_canbe_finalized(const sed_commands_t *commands);
+void sed_destroy_commands(sed_commands_t *commands);
+
+apr_status_t sed_init_eval(sed_eval_t *eval, sed_commands_t *commands,
+                           sed_err_fn_t *errfn, void *data,
+                           sed_write_fn_t *writefn, apr_pool_t *p);
+apr_status_t sed_reset_eval(sed_eval_t *eval, sed_commands_t *commands, sed_err_fn_t *errfn, void *data);
+apr_status_t sed_eval_buffer(sed_eval_t *eval, const char *buf, int bufsz, void *fout);
+apr_status_t sed_eval_file(sed_eval_t *eval, apr_file_t *fin, void *fout);
+apr_status_t sed_finalize_eval(sed_eval_t *eval, void *f);
+void sed_destroy_eval(sed_eval_t *eval);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBSED_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_sed/mod_sed.c	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,537 @@
+/*
+ * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Use is subject to license terms.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *  http://www.apache.org/licenses/LICENSE-2.0. 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
+ * or implied. 
+ * See the License for the specific language governing permissions and
+ * limitations under the License. 
+ */
+
+#include "httpd.h"
+#include "http_config.h"
+#include "http_log.h"
+#include "apr_strings.h"
+#include "apr_general.h"
+#include "util_filter.h"
+#include "apr_buckets.h"
+#include "http_request.h"
+#include "libsed.h"
+
+static const char *sed_filter_name = "Sed";
+#define MODSED_OUTBUF_SIZE 8000
+#define MAX_TRANSIENT_BUCKETS 50
+
+typedef struct sed_expr_config
+{
+    sed_commands_t *sed_cmds;
+    const char *last_error;
+} sed_expr_config;
+
+typedef struct sed_config
+{
+    sed_expr_config output;
+    sed_expr_config input;
+} sed_config;
+
+/* Context for filter invocation for single HTTP request */
+typedef struct sed_filter_ctxt
+{
+    sed_eval_t eval;
+    ap_filter_t *f;
+    request_rec *r;
+    apr_bucket_brigade *bb;
+    char *outbuf;
+    char *curoutbuf;
+    int bufsize;
+    apr_pool_t *tpool;
+    int numbuckets;
+} sed_filter_ctxt;
+
+module AP_MODULE_DECLARE_DATA sed_module;
+
+/* This function will be call back from libsed functions if there is any error
+ * happend during execution of sed scripts
+ */
+static apr_status_t log_sed_errf(void *data, const char *error)
+{
+    request_rec *r = (request_rec *) data;
+    ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, error);
+    return APR_SUCCESS;
+}
+
+/* This function will be call back from libsed functions if there is any
+ * compilation error.
+ */
+static apr_status_t sed_compile_errf(void *data, const char *error)
+{
+    sed_expr_config *sed_cfg = (sed_expr_config *) data;
+    sed_cfg->last_error = error;
+    return APR_SUCCESS;
+}
+
+/* clear the temporary pool (used for transient buckets)
+ */
+static void clear_ctxpool(sed_filter_ctxt* ctx)
+{
+    apr_pool_clear(ctx->tpool);
+    ctx->outbuf = NULL;
+    ctx->curoutbuf = NULL;
+    ctx->numbuckets = 0;
+}
+
+/* alloc_outbuf
+ * allocate output buffer
+ */
+static void alloc_outbuf(sed_filter_ctxt* ctx)
+{
+    ctx->outbuf = apr_palloc(ctx->tpool, ctx->bufsize + 1);
+    ctx->curoutbuf = ctx->outbuf;
+}
+
+/* append_bucket
+ * Allocate a new bucket from buf and sz and append to ctx->bb
+ */
+static apr_status_t append_bucket(sed_filter_ctxt* ctx, char* buf, int sz)
+{
+    apr_status_t status = APR_SUCCESS;
+    apr_bucket *b;
+    if (ctx->tpool == ctx->r->pool) {
+        /* We are not using transient bucket */
+        b = apr_bucket_pool_create(buf, sz, ctx->r->pool,
+                                   ctx->r->connection->bucket_alloc);
+        APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
+    }
+    else {
+        /* We are using transient bucket */
+        b = apr_bucket_transient_create(buf, sz,
+                                        ctx->r->connection->bucket_alloc);
+        APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
+        ctx->numbuckets++;
+        if (ctx->numbuckets >= MAX_TRANSIENT_BUCKETS) {
+            b = apr_bucket_flush_create(ctx->r->connection->bucket_alloc);
+            APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
+            status = ap_pass_brigade(ctx->f->next, ctx->bb);
+            apr_brigade_cleanup(ctx->bb);
+            clear_ctxpool(ctx);
+        }
+    }
+    return status;
+}
+
+/*
+ * flush_output_buffer
+ * Flush the  output data (stored in ctx->outbuf)
+ */
+static apr_status_t flush_output_buffer(sed_filter_ctxt *ctx)
+{
+    int size = ctx->curoutbuf - ctx->outbuf;
+    char *out;
+    apr_status_t status = APR_SUCCESS;
+    if ((ctx->outbuf == NULL) || (size <=0))
+        return status;
+    out = apr_palloc(ctx->tpool, size);
+    memcpy(out, ctx->outbuf, size);
+    status = append_bucket(ctx, out, size);
+    ctx->curoutbuf = ctx->outbuf;
+    return status;
+}
+
+/* This is a call back function. When libsed wants to generate the output,
+ * this function will be invoked.
+ */
+static apr_status_t sed_write_output(void *dummy, char *buf, int sz)
+{
+    /* dummy is basically filter context. Context is passed during invocation
+     * of sed_eval_buffer
+     */
+    int remainbytes = 0;
+    apr_status_t status = APR_SUCCESS;
+    sed_filter_ctxt *ctx = (sed_filter_ctxt *) dummy;
+    if (ctx->outbuf == NULL) {
+        alloc_outbuf(ctx);
+    }
+    remainbytes = ctx->bufsize - (ctx->curoutbuf - ctx->outbuf);
+    if (sz >= remainbytes) {
+        if (remainbytes > 0) {
+            memcpy(ctx->curoutbuf, buf, remainbytes);
+            buf += remainbytes;
+            sz -= remainbytes;
+            ctx->curoutbuf += remainbytes;
+        }
+        /* buffer is now full */
+        status = append_bucket(ctx, ctx->outbuf, ctx->bufsize);
+        /* old buffer is now used so allocate new buffer */
+        alloc_outbuf(ctx);
+        /* if size is bigger than the allocated buffer directly add to output
+         * brigade */
+        if ((status == APR_SUCCESS) && (sz >= ctx->bufsize)) {
+            char* newbuf = apr_palloc(ctx->tpool, sz);
+            memcpy(newbuf, buf, sz);
+            status = append_bucket(ctx, newbuf, sz);
+            /* pool might get clear after append_bucket */
+            if (ctx->outbuf == NULL) {
+                alloc_outbuf(ctx);
+            }
+        }
+        else {
+            memcpy(ctx->curoutbuf, buf, sz);
+            ctx->curoutbuf += sz;
+        }
+    }
+    else {
+        memcpy(ctx->curoutbuf, buf, sz);
+        ctx->curoutbuf += sz;
+    }
+    return status;
+}
+
+/* Compile a sed expression. Compiled context is saved in sed_cfg->sed_cmds.
+ * Memory required for compilation context is allocated from cmd->pool.
+ */
+static apr_status_t compile_sed_expr(sed_expr_config *sed_cfg,
+                                     cmd_parms *cmd,
+                                     const char *expr)
+{
+    apr_status_t status = APR_SUCCESS;
+
+    if (!sed_cfg->sed_cmds) {
+        sed_commands_t *sed_cmds;
+        sed_cmds = apr_pcalloc(cmd->pool, sizeof(sed_commands_t));
+        status = sed_init_commands(sed_cmds, sed_compile_errf, sed_cfg,
+                                   cmd->pool);
+        if (status != APR_SUCCESS) {
+            sed_destroy_commands(sed_cmds);
+            return status;
+        }
+        sed_cfg->sed_cmds = sed_cmds;
+    }
+    status = sed_compile_string(sed_cfg->sed_cmds, expr);
+    if (status != APR_SUCCESS) {
+        sed_destroy_commands(sed_cfg->sed_cmds);
+        sed_cfg->sed_cmds = NULL;
+    }
+    return status;
+}
+
+/* sed eval cleanup function */
+static apr_status_t sed_eval_cleanup(void *data)
+{
+    sed_eval_t *eval = (sed_eval_t *) data;
+    sed_destroy_eval(eval);
+    return APR_SUCCESS;
+}
+
+/* Initialize sed filter context. If successful then context is set in f->ctx
+ */
+static apr_status_t init_context(ap_filter_t *f, sed_expr_config *sed_cfg, int usetpool)
+{
+    apr_status_t status;
+    sed_filter_ctxt* ctx;
+    request_rec *r = f->r;
+    /* Create the context. Call sed_init_eval. libsed will generated
+     * output by calling sed_write_output and generates any error by
+     * invoking log_sed_errf.
+     */
+    ctx = apr_pcalloc(r->pool, sizeof(sed_filter_ctxt));
+    ctx->r = r;
+    ctx->bb = NULL;
+    ctx->numbuckets = 0;
+    ctx->f = f;
+    status = sed_init_eval(&ctx->eval, sed_cfg->sed_cmds, log_sed_errf,
+                           r, &sed_write_output, r->pool);
+    if (status != APR_SUCCESS) {
+        return status;
+    }
+    apr_pool_cleanup_register(r->pool, &ctx->eval, sed_eval_cleanup,
+                              apr_pool_cleanup_null);
+    ctx->bufsize = MODSED_OUTBUF_SIZE;
+    if (usetpool) {
+        apr_pool_create(&(ctx->tpool), r->pool);
+    }
+    else {
+        ctx->tpool = r->pool;
+    }
+    alloc_outbuf(ctx);
+    f->ctx = ctx;
+    return APR_SUCCESS;
+}
+
+/* Entry function for Sed output filter */
+static apr_status_t sed_response_filter(ap_filter_t *f,
+                                        apr_bucket_brigade *bb)
+{
+    apr_bucket *b;
+    apr_status_t status;
+    sed_config *cfg = ap_get_module_config(f->r->per_dir_config,
+                                           &sed_module);
+    sed_filter_ctxt *ctx = f->ctx;
+    sed_expr_config *sed_cfg = &cfg->output;
+
+    if ((sed_cfg == NULL) || (sed_cfg->sed_cmds == NULL)) {
+        /* No sed expressions */
+        ap_remove_output_filter(f);
+        return ap_pass_brigade(f->next, bb);
+    }
+
+    if (ctx == NULL) {
+
+        if (APR_BUCKET_IS_EOS(APR_BRIGADE_FIRST(bb))) {
+            /* no need to run sed filter for Head requests */
+            ap_remove_output_filter(f);
+            return ap_pass_brigade(f->next, bb);
+        }
+
+        status = init_context(f, sed_cfg, 1);
+        if (status != APR_SUCCESS)
+             return status;
+        ctx = f->ctx;
+        apr_table_unset(f->r->headers_out, "Content-Length");
+    }
+
+    ctx->bb = apr_brigade_create(f->r->pool, f->c->bucket_alloc);
+
+    /* Here is the main logic. Iterate through all the buckets, read the
+     * content of the bucket, call sed_eval_buffer on the data.
+     * sed_eval_buffer will read the data line by line, run filters on each
+     * line. sed_eval_buffer will generates the output by calling
+     * sed_write_output which will add the output to ctx->bb. At the end of
+     * the loop, ctx->bb is passed to the next filter in chain. At the end of
+     * the data, if new line is not found then sed_eval_buffer will store the
+     * data in it's own buffer.
+     *
+     * Once eos bucket is found then sed_finalize_eval will flush the rest of
+     * the data. If there is no new line in last line of data, new line is
+     * appended (that is a solaris sed behavior). libsed's internal memory for
+     * evaluation is allocated on request's pool so it will be cleared once
+     * request is over.
+     *
+     * If flush bucket is found then append the the flush bucket to ctx->bb
+     * and pass it to next filter. There may be some data which will still be
+     * in sed's internal buffer which can't be flushed until new line
+     * character is arrived.
+     */
+    for (b = APR_BRIGADE_FIRST(bb); b != APR_BRIGADE_SENTINEL(bb);) {
+        const char *buf = NULL;
+        apr_size_t bytes = 0;
+        if (APR_BUCKET_IS_EOS(b)) {
+            apr_bucket *b1 = APR_BUCKET_NEXT(b);
+            /* Now clean up the internal sed buffer */
+            sed_finalize_eval(&ctx->eval, ctx);
+            status = flush_output_buffer(ctx);
+            if (status != APR_SUCCESS) {
+                clear_ctxpool(ctx);
+                return status;
+            }
+            APR_BUCKET_REMOVE(b);
+            /* Insert the eos bucket to ctx->bb brigade */
+            APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
+            b = b1;
+        }
+        else if (APR_BUCKET_IS_FLUSH(b)) {
+            apr_bucket *b1 = APR_BUCKET_NEXT(b);
+            APR_BUCKET_REMOVE(b);
+            status = flush_output_buffer(ctx);
+            if (status != APR_SUCCESS) {
+                clear_ctxpool(ctx);
+                return status;
+            }
+            APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
+            b = b1;
+        }
+        else if (APR_BUCKET_IS_METADATA(b)) {
+            b = APR_BUCKET_NEXT(b);
+        }
+        else if (apr_bucket_read(b, &buf, &bytes, APR_BLOCK_READ)
+                 == APR_SUCCESS) {
+            apr_bucket *b1 = APR_BUCKET_NEXT(b);
+            status = sed_eval_buffer(&ctx->eval, buf, bytes, ctx);
+            if (status != APR_SUCCESS) {
+                clear_ctxpool(ctx);
+                return status;
+            }
+            APR_BUCKET_REMOVE(b);
+            apr_bucket_delete(b);
+            b = b1;
+        }
+        else {
+            apr_bucket *b1 = APR_BUCKET_NEXT(b);
+            APR_BUCKET_REMOVE(b);
+            b = b1;
+        }
+    }
+    apr_brigade_cleanup(bb);
+    status = flush_output_buffer(ctx);
+    if (status != APR_SUCCESS) {
+        clear_ctxpool(ctx);
+        return status;
+    }
+    if (!APR_BRIGADE_EMPTY(ctx->bb)) {
+        status = ap_pass_brigade(f->next, ctx->bb);
+        apr_brigade_cleanup(ctx->bb);
+    }
+    clear_ctxpool(ctx);
+    return status;
+}
+
+/* Entry function for Sed input filter */
+static apr_status_t sed_request_filter(ap_filter_t *f,
+                                       apr_bucket_brigade *bb,
+                                       ap_input_mode_t mode,
+                                       apr_read_type_e block,
+                                       apr_off_t readbytes)
+{
+    sed_config *cfg = ap_get_module_config(f->r->per_dir_config,
+                                           &sed_module);
+    sed_filter_ctxt *ctx = f->ctx;
+    apr_status_t status;
+    sed_expr_config *sed_cfg = &cfg->input;
+
+    if (mode != AP_MODE_READBYTES) {
+        return ap_get_brigade(f->next, bb, mode, block, readbytes);
+    }
+
+    if ((sed_cfg == NULL) || (sed_cfg->sed_cmds == NULL)) {
+        /* No sed expression */
+        return ap_get_brigade(f->next, bb, mode, block, readbytes);
+    }
+
+    if (!ctx) {
+        if (!ap_is_initial_req(f->r)) {
+            ap_remove_input_filter(f);
+            /* XXX : Should we filter the sub requests too */
+            return ap_get_brigade(f->next, bb, mode, block, readbytes);
+        }
+        status = init_context(f, sed_cfg, 0);
+        if (status != APR_SUCCESS)
+             return status;
+        ctx = f->ctx;
+        ctx->bb = apr_brigade_create(f->r->pool, f->c->bucket_alloc);
+    }
+
+    /* Here is the logic :
+     * Read the readbytes data from next level fiter into bbinp. Loop through
+     * the buckets in bbinp and read the data from buckets and invoke
+     * sed_eval_buffer on the data. libsed will generate it's output using
+     * sed_write_output which will add data in ctx->bb. Do it until it have
+     * atleast one bucket bucket in ctx->bb. At the end of data eos bucket
+     * should be there.
+     *
+     * Once eos bucket is seen, then invoke sed_finalize_eval to clear the
+     * output. If the last byte of data is not a new line character then sed
+     * will add a new line to the data that is default sed behaviour. Note
+     * that using this filter with POST data, caller may not expect this
+     * behaviour.
+     *
+     * If next level fiter generate the flush bucket, we can't do much about
+     * it. If we want to return the flush bucket in brigade bb (to the caller)
+     * the question is where to add it?
+     */
+    while (APR_BRIGADE_EMPTY(ctx->bb)) {
+        apr_bucket_brigade *bbinp;
+        apr_bucket *b;
+
+        /* read the bytes from next level filter */
+        bbinp = apr_brigade_create(f->r->pool, f->c->bucket_alloc);
+        status = ap_get_brigade(f->next, bbinp, mode, block, readbytes);
+        if (status != APR_SUCCESS) {
+            return status;
+        }
+        for (b = APR_BRIGADE_FIRST(bbinp); b != APR_BRIGADE_SENTINEL(bbinp);
+             b = APR_BUCKET_NEXT(b)) {
+            const char *buf = NULL;
+            apr_size_t bytes;
+
+            if (APR_BUCKET_IS_EOS(b)) {
+                /* eos bucket. Clear the internal sed buffers */
+                sed_finalize_eval(&ctx->eval, ctx);
+                flush_output_buffer(ctx);
+                APR_BUCKET_REMOVE(b);
+                APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
+                break;
+            }
+            else if (APR_BUCKET_IS_FLUSH(b)) {
+                /* What should we do with flush bucket */
+                continue;
+            }
+            if (apr_bucket_read(b, &buf, &bytes, APR_BLOCK_READ)
+                     == APR_SUCCESS) {
+                status = sed_eval_buffer(&ctx->eval, buf, bytes, ctx);
+                if (status != APR_SUCCESS)
+                    return status;
+                flush_output_buffer(ctx);
+            }
+        }
+        apr_brigade_cleanup(bbinp);
+        apr_brigade_destroy(bbinp);
+    }
+
+    if (!APR_BRIGADE_EMPTY(ctx->bb)) {
+        apr_bucket_brigade *newbb = NULL;
+        apr_bucket *b = NULL;
+
+        /* This may return APR_INCOMPLETE which should be fine */
+        apr_brigade_partition(ctx->bb, readbytes, &b);
+
+        newbb = apr_brigade_split(ctx->bb, b);
+        APR_BRIGADE_CONCAT(bb, ctx->bb);
+        APR_BRIGADE_CONCAT(ctx->bb, newbb);
+    }
+    return APR_SUCCESS;
+}
+
+static const char *sed_add_expr(cmd_parms *cmd, void *cfg, const char *arg)
+{
+    int offset = (int) (long) cmd->info;
+    sed_expr_config *sed_cfg = 
+                (sed_expr_config *) (((char *) cfg) + offset);
+    if (compile_sed_expr(sed_cfg, cmd, arg) != APR_SUCCESS) {
+        return apr_psprintf(cmd->temp_pool,
+                            "Failed to compile sed expression. %s",
+                            sed_cfg->last_error);
+    }
+    return NULL;
+}
+
+static void *create_sed_dir_config(apr_pool_t *p, char *s)
+{
+    sed_config *cfg = apr_pcalloc(p, sizeof(sed_config));
+    return cfg;
+}
+
+static const command_rec sed_filter_cmds[] = {
+    AP_INIT_TAKE1("OutputSed", sed_add_expr,
+                  (void *) APR_OFFSETOF(sed_config, output),
+                  ACCESS_CONF,
+                  "Sed regular expression for Response"),
+    AP_INIT_TAKE1("InputSed", sed_add_expr,
+                  (void *) APR_OFFSETOF(sed_config, input),
+                  ACCESS_CONF,
+                  "Sed regular expression for Request"),
+    {NULL}
+};
+
+static void register_hooks(apr_pool_t *p)
+{
+    ap_register_output_filter(sed_filter_name, sed_response_filter, NULL,
+                              AP_FTYPE_RESOURCE);
+    ap_register_input_filter(sed_filter_name, sed_request_filter, NULL,
+                             AP_FTYPE_RESOURCE);
+}
+
+module AP_MODULE_DECLARE_DATA sed_module = {
+    STANDARD20_MODULE_STUFF,
+    create_sed_dir_config,      /* dir config creater */
+    NULL,                       /* dir merger --- default is to override */
+    NULL,                       /* server config */
+    NULL,                       /* merge server config */
+    sed_filter_cmds,            /* command table */
+    register_hooks              /* register hooks */
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_sed/regexp.c	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,601 @@
+/*
+ * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Use is subject to license terms.
+ *
+ *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	
+ *	  All Rights Reserved  	
+ *
+ * University Copyright- Copyright (c) 1982, 1986, 1988
+ * The Regents of the University of California
+ * All Rights Reserved
+ *
+ * University Acknowledgment- Portions of this document are derived from
+ * software developed by the University of California, Berkeley, and its
+ * contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *  http://www.apache.org/licenses/LICENSE-2.0. 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
+ * or implied. 
+ * See the License for the specific language governing permissions and
+ * limitations under the License. 
+ */
+
+/* Code moved from regexp.h */
+
+#include "apr.h"
+#include "apr_lib.h"
+#ifdef APR_HAVE_LIMITS_H
+#include <limits.h>
+#endif
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include "libsed.h"
+#include "regexp.h"
+#include "sed.h"
+
+#define GETC() ((unsigned char)*sp++)
+#define PEEKC() ((unsigned char)*sp)
+#define UNGETC(c) (--sp)
+#define SEDCOMPILE_ERROR(c) { \
+            regerrno = c; \
+            goto out; \
+            }
+#define ecmp(s1, s2, n)    (strncmp(s1, s2, n) == 0)
+#define uletter(c) (isalpha(c) || c == '_')
+
+
+static unsigned char bittab[] = { 1, 2, 4, 8, 16, 32, 64, 128 };
+
+static int regerr(sed_commands_t *commands, int err);
+static void comperr(sed_commands_t *commands, char *msg);
+static void getrnge(char *str, step_vars_storage *vars);
+static int _advance(char *, char *, step_vars_storage *);
+extern int sed_step(char *p1, char *p2, int circf, step_vars_storage *vars);
+
+
+static void comperr(sed_commands_t *commands, char *msg)
+{
+    command_errf(commands, msg, commands->linebuf);
+}
+
+/*
+*/
+static int regerr(sed_commands_t *commands, int err)
+{
+    switch(err) {
+    case 0:
+        /* No error */
+        break;
+    case 11:
+        comperr(commands, "Range endpoint too large: %s");
+        break;
+
+    case 16:
+        comperr(commands, "Bad number: %s");
+        break;
+
+    case 25:
+        comperr(commands, "``\\digit'' out of range: %s");
+        break;
+
+    case 36:
+        comperr(commands, "Illegal or missing delimiter: %s");
+        break;
+
+    case 41:
+        comperr(commands, "No remembered search string: %s");
+        break;
+
+    case 42:
+        comperr(commands, "\\( \\) imbalance: %s");
+        break;
+
+    case 43:
+        comperr(commands, "Too many \\(: %s");
+        break;
+
+    case 44:
+        comperr(commands, "More than 2 numbers given in \\{ \\}: %s");
+        break;
+
+    case 45:
+        comperr(commands, "} expected after \\: %s");
+        break;
+
+    case 46:
+        comperr(commands, "First number exceeds second in \\{ \\}: %s");
+        break;
+
+    case 49:
+        comperr(commands, "[ ] imbalance: %s");
+        break;
+
+    case 50:
+        comperr(commands, SEDERR_TMMES);
+        break;
+
+    default:
+        comperr(commands, "Unknown regexp error code %s\n");
+        break;
+    }
+    return (0);
+}
+
+
+char *sed_compile(sed_commands_t *commands, sed_comp_args *compargs,
+                  char *ep, char *endbuf, int seof)
+{
+    int c;
+    int eof = seof;
+    char *lastep;
+    int cclcnt;
+    char bracket[NBRA], *bracketp;
+    int closed;
+    int neg;
+    int lc;
+    int i, cflg;
+    int iflag; /* used for non-ascii characters in brackets */
+    int nodelim = 0;
+    char *sp = commands->cp;
+    int regerrno = 0;
+
+    lastep = 0;
+    if ((c = GETC()) == eof || c == '\n') {
+        if (c == '\n') {
+            UNGETC(c);
+            nodelim = 1;
+        }
+        commands->cp = sp;
+        goto out;
+    }
+    bracketp = bracket;
+    compargs->circf = closed = compargs->nbra = 0;
+    if (c == '^')
+        compargs->circf++;
+    else
+        UNGETC(c);
+    while (1) {
+        if (ep >= endbuf)
+            SEDCOMPILE_ERROR(50);
+        c = GETC();
+        if (c != '*' && ((c != '\\') || (PEEKC() != '{')))
+            lastep = ep;
+        if (c == eof) {
+            *ep++ = CCEOF;
+            if (bracketp != bracket)
+                SEDCOMPILE_ERROR(42);
+            commands->cp = sp;
+            goto out;
+        }
+        switch (c) {
+
+        case '.':
+            *ep++ = CDOT;
+            continue;
+
+        case '\n':
+            SEDCOMPILE_ERROR(36);
+            commands->cp = sp;
+            goto out;
+        case '*':
+            if (lastep == 0 || *lastep == CBRA || *lastep == CKET)
+                goto defchar;
+            *lastep |= STAR;
+            continue;
+
+        case '$':
+            if (PEEKC() != eof && PEEKC() != '\n')
+                goto defchar;
+            *ep++ = CDOL;
+            continue;
+
+        case '[':
+            if (&ep[17] >= endbuf)
+                SEDCOMPILE_ERROR(50);
+
+            *ep++ = CCL;
+            lc = 0;
+            for (i = 0; i < 16; i++)
+                ep[i] = 0;
+
+            neg = 0;
+            if ((c = GETC()) == '^') {
+                neg = 1;
+                c = GETC();
+            }
+            iflag = 1;
+            do {
+                c &= 0377;
+                if (c == '\0' || c == '\n')
+                    SEDCOMPILE_ERROR(49);
+                if ((c & 0200) && iflag) {
+                    iflag = 0;
+                    if (&ep[32] >= endbuf)
+                        SEDCOMPILE_ERROR(50);
+                    ep[-1] = CXCL;
+                    for (i = 16; i < 32; i++)
+                        ep[i] = 0;
+                }
+                if (c == '-' && lc != 0) {
+                    if ((c = GETC()) == ']') {
+                        PLACE('-');
+                        break;
+                    }
+                    if ((c & 0200) && iflag) {
+                        iflag = 0;
+                        if (&ep[32] >= endbuf)
+                            SEDCOMPILE_ERROR(50);
+                        ep[-1] = CXCL;
+                        for (i = 16; i < 32; i++)
+                            ep[i] = 0;
+                    }
+                    while (lc < c) {
+                        PLACE(lc);
+                        lc++;
+                    }
+                }
+                lc = c;
+                PLACE(c);
+            } while ((c = GETC()) != ']');
+
+            if (iflag)
+                iflag = 16;
+            else
+                iflag = 32;
+
+            if (neg) {
+                if (iflag == 32) {
+                    for (cclcnt = 0; cclcnt < iflag;
+                        cclcnt++)
+                        ep[cclcnt] ^= 0377;
+                    ep[0] &= 0376;
+                } else {
+                    ep[-1] = NCCL;
+                    /* make nulls match so test fails */
+                    ep[0] |= 01;
+                }
+            }
+
+            ep += iflag;
+
+            continue;
+
+        case '\\':
+            switch (c = GETC()) {
+
+            case '(':
+                if (compargs->nbra >= NBRA)
+                    SEDCOMPILE_ERROR(43);
+                *bracketp++ = compargs->nbra;
+                *ep++ = CBRA;
+                *ep++ = compargs->nbra++;
+                continue;
+
+            case ')':
+                if (bracketp <= bracket)
+                    SEDCOMPILE_ERROR(42);
+                *ep++ = CKET;
+                *ep++ = *--bracketp;
+                closed++;
+                continue;
+
+            case '{':
+                if (lastep == (char *) 0)
+                    goto defchar;
+                *lastep |= RNGE;
+                cflg = 0;
+            nlim:
+                c = GETC();
+                i = 0;
+                do {
+                    if ('0' <= c && c <= '9')
+                        i = 10 * i + c - '0';
+                    else
+                        SEDCOMPILE_ERROR(16);
+                } while (((c = GETC()) != '\\') && (c != ','));
+                if (i >= 255)
+                    SEDCOMPILE_ERROR(11);
+                *ep++ = i;
+                if (c == ',') {
+                    if (cflg++)
+                        SEDCOMPILE_ERROR(44);
+                    if ((c = GETC()) == '\\')
+                        *ep++ = (char) 255;
+                    else {
+                        UNGETC(c);
+                        goto nlim;
+                        /* get 2'nd number */
+                    }
+                }
+                if (GETC() != '}')
+                    SEDCOMPILE_ERROR(45);
+                if (!cflg)    /* one number */
+                    *ep++ = i;
+                else if ((ep[-1] & 0377) < (ep[-2] & 0377))
+                    SEDCOMPILE_ERROR(46);
+                continue;
+
+            case '\n':
+                SEDCOMPILE_ERROR(36);
+
+            case 'n':
+                c = '\n';
+                goto defchar;
+
+            default:
+                if (c >= '1' && c <= '9') {
+                    if ((c -= '1') >= closed)
+                        SEDCOMPILE_ERROR(25);
+                    *ep++ = CBACK;
+                    *ep++ = c;
+                    continue;
+                }
+            }
+    /* Drop through to default to use \ to turn off special chars */
+
+        defchar:
+        default:
+            lastep = ep;
+            *ep++ = CCHR;
+            *ep++ = c;
+        }
+    }
+out:
+    if (regerrno) {
+        regerr(commands, regerrno);
+        return (char*) NULL;
+    }
+    /* XXX : Basant : what extra */
+    /* int reglength = (int)(ep - expbuf); */
+    return ep;
+}
+
+int sed_step(char *p1, char *p2, int circf, step_vars_storage *vars)
+{
+    int c;
+
+
+    if (circf) {
+        vars->loc1 = p1;
+        return (_advance(p1, p2, vars));
+    }
+    /* fast check for first character */
+    if (*p2 == CCHR) {
+        c = p2[1];
+        do {
+            if (*p1 != c)
+                continue;
+            if (_advance(p1, p2, vars)) {
+                vars->loc1 = p1;
+                return (1);
+            }
+        } while (*p1++);
+        return (0);
+    }
+        /* regular algorithm */
+    do {
+        if (_advance(p1, p2, vars)) {
+            vars->loc1 = p1;
+            return (1);
+        }
+    } while (*p1++);
+    return (0);
+}
+
+static int _advance(char *lp, char *ep, step_vars_storage *vars)
+{
+    char *curlp;
+    int c;
+    char *bbeg;
+    char neg;
+    int ct;
+    int epint; /* int value of *ep */
+
+    while (1) {
+        neg = 0;
+        switch (*ep++) {
+
+        case CCHR:
+            if (*ep++ == *lp++)
+                continue;
+            return (0);
+
+        case CDOT:
+            if (*lp++)
+                continue;
+            return (0);
+
+        case CDOL:
+            if (*lp == 0)
+                continue;
+            return (0);
+
+        case CCEOF:
+            vars->loc2 = lp;
+            return (1);
+
+        case CXCL:
+            c = (unsigned char)*lp++;
+            if (ISTHERE(c)) {
+                ep += 32;
+                continue;
+            }
+            return (0);
+
+        case NCCL:
+            neg = 1;
+
+        case CCL:
+            c = *lp++;
+            if (((c & 0200) == 0 && ISTHERE(c)) ^ neg) {
+                ep += 16;
+                continue;
+            }
+            return (0);
+
+        case CBRA:
+            epint = (int) *ep;
+            vars->braslist[epint] = lp;
+            ep++;
+            continue;
+
+        case CKET:
+            epint = (int) *ep;
+            vars->braelist[epint] = lp;
+            ep++;
+            continue;
+
+        case CCHR | RNGE:
+            c = *ep++;
+            getrnge(ep, vars);
+            while (vars->low--)
+                if (*lp++ != c)
+                    return (0);
+            curlp = lp;
+            while (vars->size--)
+                if (*lp++ != c)
+                    break;
+            if (vars->size < 0)
+                lp++;
+            ep += 2;
+            goto star;
+
+        case CDOT | RNGE:
+            getrnge(ep, vars);
+            while (vars->low--)
+                if (*lp++ == '\0')
+                    return (0);
+            curlp = lp;
+            while (vars->size--)
+                if (*lp++ == '\0')
+                    break;
+            if (vars->size < 0)
+                lp++;
+            ep += 2;
+            goto star;
+
+        case CXCL | RNGE:
+            getrnge(ep + 32, vars);
+            while (vars->low--) {
+                c = (unsigned char)*lp++;
+                if (!ISTHERE(c))
+                    return (0);
+            }
+            curlp = lp;
+            while (vars->size--) {
+                c = (unsigned char)*lp++;
+                if (!ISTHERE(c))
+                    break;
+            }
+            if (vars->size < 0)
+                lp++;
+            ep += 34;        /* 32 + 2 */
+            goto star;
+
+        case NCCL | RNGE:
+            neg = 1;
+
+        case CCL | RNGE:
+            getrnge(ep + 16, vars);
+            while (vars->low--) {
+                c = *lp++;
+                if (((c & 0200) || !ISTHERE(c)) ^ neg)
+                    return (0);
+            }
+            curlp = lp;
+            while (vars->size--) {
+                c = *lp++;
+                if (((c & 0200) || !ISTHERE(c)) ^ neg)
+                    break;
+            }
+            if (vars->size < 0)
+                lp++;
+            ep += 18;         /* 16 + 2 */
+            goto star;
+
+        case CBACK:
+            epint = (int) *ep;
+            bbeg = vars->braslist[epint];
+            ct = vars->braelist[epint] - bbeg;
+            ep++;
+
+            if (ecmp(bbeg, lp, ct)) {
+                lp += ct;
+                continue;
+            }
+            return (0);
+
+        case CBACK | STAR:
+            epint = (int) *ep;
+            bbeg = vars->braslist[epint];
+            ct = vars->braelist[epint] - bbeg;
+            ep++;
+            curlp = lp;
+            while (ecmp(bbeg, lp, ct))
+                lp += ct;
+
+            while (lp >= curlp) {
+                if (_advance(lp, ep, vars))
+                    return (1);
+                lp -= ct;
+            }
+            return (0);
+
+
+        case CDOT | STAR:
+            curlp = lp;
+            while (*lp++);
+            goto star;
+
+        case CCHR | STAR:
+            curlp = lp;
+            while (*lp++ == *ep);
+            ep++;
+            goto star;
+
+        case CXCL | STAR:
+            curlp = lp;
+            do {
+                c = (unsigned char)*lp++;
+            } while (ISTHERE(c));
+            ep += 32;
+            goto star;
+
+        case NCCL | STAR:
+            neg = 1;
+
+        case CCL | STAR:
+            curlp = lp;
+            do {
+                c = *lp++;
+            } while (((c & 0200) == 0 && ISTHERE(c)) ^ neg);
+            ep += 16;
+            goto star;
+
+        star:
+            do {
+                if (--lp == vars->locs)
+                    break;
+                if (_advance(lp, ep, vars))
+                    return (1);
+            } while (lp > curlp);
+            return (0);
+
+        }
+    }
+}
+
+static void getrnge(char *str, step_vars_storage *vars)
+{
+    vars->low = *str++ & 0377;
+    vars->size = ((*str & 0377) == 255)? 20000: (*str &0377) - vars->low;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_sed/regexp.h	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Use is subject to license terms.
+ *
+ *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	
+ *	  All Rights Reserved  	
+ *
+ * University Copyright- Copyright (c) 1982, 1986, 1988
+ * The Regents of the University of California
+ * All Rights Reserved
+ *
+ * University Acknowledgment- Portions of this document are derived from
+ * software developed by the University of California, Berkeley, and its
+ * contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *  http://www.apache.org/licenses/LICENSE-2.0. 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
+ * or implied. 
+ * See the License for the specific language governing permissions and
+ * limitations under the License. 
+ */
+
+#ifndef _REGEXP_H
+#define _REGEXP_H
+
+#include "libsed.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define    CBRA    2
+#define    CCHR    4
+#define    CDOT    8
+#define    CCL    12
+#define    CXCL    16
+#define    CDOL    20
+#define    CCEOF    22
+#define    CKET    24
+#define    CBACK    36
+#define    NCCL    40
+
+#define    STAR    01
+#define    RNGE    03
+
+#define    NBRA    9
+
+#define    PLACE(c)    ep[c >> 3] |= bittab[c & 07]
+#define    ISTHERE(c)    (ep[c >> 3] & bittab[c & 07])
+
+typedef struct _step_vars_storage {
+    char    *loc1, *loc2, *locs;
+    char    *braslist[NBRA];
+    char    *braelist[NBRA];
+    int    low;
+    int    size;
+} step_vars_storage;
+
+typedef struct _sed_comp_args {
+    int circf; /* Regular expression starts with ^ */
+    int nbra; /* braces count */
+} sed_comp_args;
+
+extern char *sed_compile(sed_commands_t *commands, sed_comp_args *compargs,
+                         char *ep, char *endbuf, int seof);
+extern void command_errf(sed_commands_t *commands, const char *fmt, ...);
+
+#define SEDERR_CGMES "command garbled: %s"
+#define SEDERR_SMMES "Space missing before filename: %s"
+#define SEDERR_TMMES "too much command text: %s"
+#define SEDERR_LTLMES "label too long: %s"
+#define SEDERR_ULMES "undefined label: %s"
+#define SEDERR_DLMES "duplicate labels: %s"
+#define SEDERR_TMLMES "too many labels: %s"
+#define SEDERR_AD0MES "no addresses allowed: %s"
+#define SEDERR_AD1MES "only one address allowed: %s"
+#define SEDERR_TOOBIG "suffix too large: %s"
+#define SEDERR_OOMMES "out of memory"
+#define SEDERR_COPFMES "cannot open pattern file: %s"
+#define SEDERR_COIFMES "cannot open input file: %s"
+#define SEDERR_TMOMES "too many {'s"
+#define SEDERR_TMCMES "too many }'s"
+#define SEDERR_NRMES "first RE may not be null"
+#define SEDERR_UCMES "unrecognized command: %s"
+#define SEDERR_TMWFMES "too many files in w commands"
+#define SEDERR_COMES "cannot open %s"
+#define SEDERR_CCMES "cannot create %s"
+#define SEDERR_TMLNMES "too many line numbers"
+#define SEDERR_TMAMES "too many appends after line %lld"
+#define SEDERR_TMRMES "too many reads after line %lld"
+#define SEDERR_DOORNG "``\\digit'' out of range: %s"
+#define SEDERR_EDMOSUB "ending delimiter missing on substitution: %s"
+#define SEDERR_EDMOSTR "ending delimiter missing on string: %s"
+#define SEDERR_FNTL "file name too long: %s"
+#define SEDERR_CLTL "command line too long"
+#define SEDERR_TSNTSS "transform strings not the same size: %s"
+#define SEDERR_OLTL "output line too long."
+#define SEDERR_HSOVERFLOW "hold space overflowed."
+#define SEDERR_INTERNAL "internal sed error"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _REGEXP_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_sed/sed.h	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Use is subject to license terms.
+ *
+ *	Copyright (c) 1984 AT&T
+ *	  All Rights Reserved  	
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *  http://www.apache.org/licenses/LICENSE-2.0. 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
+ * or implied. 
+ * See the License for the specific language governing permissions and
+ * limitations under the License. 
+ */
+
+#ifndef _SED_H
+#define _SED_H
+
+#include <stdlib.h>
+#include <limits.h>
+
+#define CEND    16
+#define CLNUM   14
+
+#define RESIZE  10000
+#define LBSIZE  1000
+
+#define ACOM    01
+#define BCOM    020
+#define CCOM    02
+#define CDCOM   025
+#define CNCOM   022
+#define COCOM   017
+#define CPCOM   023
+#define DCOM    03
+#define ECOM    015
+#define EQCOM   013
+#define FCOM    016
+#define GCOM    027
+#define CGCOM   030
+#define HCOM    031
+#define CHCOM   032
+#define ICOM    04
+#define LCOM    05
+#define NCOM    012
+#define PCOM    010
+#define QCOM    011
+#define RCOM    06
+#define SCOM    07
+#define TCOM    021
+#define WCOM    014
+#define CWCOM   024
+#define YCOM    026
+#define XCOM    033
+
+#endif /* _SED_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_sed/sed0.c	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,1026 @@
+/*
+ * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Use is subject to license terms.
+ *
+ *	Copyright (c) 1984 AT&T
+ *	  All Rights Reserved  	
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *  http://www.apache.org/licenses/LICENSE-2.0. 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
+ * or implied. 
+ * See the License for the specific language governing permissions and
+ * limitations under the License. 
+ */
+
+#include "apr.h"
+#include "apr_strings.h"
+#include "libsed.h"
+#include "sed.h"
+#include "regexp.h"
+
+#define CCEOF 22
+
+static int fcomp(sed_commands_t *commands, apr_file_t *fin);
+static char *compsub(sed_commands_t *commands,
+                     sed_comp_args *compargs, char *rhsbuf);
+static int rline(sed_commands_t *commands, apr_file_t *fin,
+                 char *lbuf, char *lbend);
+static char *address(sed_commands_t *commands, char *expbuf,
+                     apr_status_t* status);
+static char *text(sed_commands_t *commands, char *textbuf, char *endbuf);
+static sed_label_t *search(sed_commands_t *commands);
+static char *ycomp(sed_commands_t *commands, char *expbuf);
+static char *comple(sed_commands_t *commands, sed_comp_args *compargs,
+                    char *x1, char *ep, char *x3, char x4);
+static sed_reptr_t *alloc_reptr(sed_commands_t *commands);
+static int check_finalized(const sed_commands_t *commands);
+
+void command_errf(sed_commands_t *commands, const char *fmt, ...)
+{
+    if (commands->errfn && commands->pool) {
+        va_list args;
+        const char* error;
+        va_start(args, fmt);
+        error = apr_pvsprintf(commands->pool, fmt, args);
+        commands->errfn(commands->data, error);
+        va_end(args);
+    }
+}
+
+/*
+ * sed_init_commands
+ */
+apr_status_t sed_init_commands(sed_commands_t *commands, sed_err_fn_t *errfn, void *data,
+                               apr_pool_t *p)
+{
+    memset(commands, 0, sizeof(*commands));
+
+    commands->errfn = errfn;
+    commands->data = data;
+
+    commands->labtab = commands->ltab;
+    commands->lab = commands->labtab + 1;
+    commands->pool = p;
+
+    commands->respace = apr_pcalloc(p, RESIZE);
+    if (commands->respace == NULL) {
+        command_errf(commands, SEDERR_OOMMES);
+        return APR_EGENERAL;
+    }
+
+    commands->rep = alloc_reptr(commands);
+    if (commands->rep == NULL)
+        return APR_EGENERAL;
+
+    commands->rep->ad1 = commands->respace;
+    commands->reend = &commands->respace[RESIZE - 1];
+    commands->labend = &commands->labtab[SED_LABSIZE];
+    commands->canbefinal = 1;
+
+    return APR_SUCCESS;
+}
+ 
+/*
+ * sed_destroy_commands
+ */
+void sed_destroy_commands(sed_commands_t *commands)
+{
+}
+
+/*
+ * sed_compile_string
+ */
+apr_status_t sed_compile_string(sed_commands_t *commands, const char *s)
+{
+    apr_status_t rv;
+
+    commands->earg = s;
+    commands->eflag = 1;
+
+    rv = fcomp(commands, NULL);
+    if (rv == APR_SUCCESS)
+        commands->canbefinal = check_finalized(commands);
+
+    commands->eflag = 0;
+
+    return (rv != 0 ? APR_EGENERAL : APR_SUCCESS);
+}
+
+/*
+ * sed_compile_file
+ */
+apr_status_t sed_compile_file(sed_commands_t *commands, apr_file_t *fin)
+{
+    apr_status_t rv = fcomp(commands, fin);
+    return (rv != 0 ? APR_EGENERAL : APR_SUCCESS);
+}
+
+/*
+ * sed_get_finalize_error
+ */
+char* sed_get_finalize_error(const sed_commands_t *commands, apr_pool_t* pool)
+{
+    const sed_label_t *lab;
+    if (commands->depth) {
+        return SEDERR_TMOMES;
+    }
+
+    /* Empty branch chain is not a issue */
+    for (lab = commands->labtab + 1; lab < commands->lab; lab++) {
+        char *error;
+        if (lab->address == 0) {
+            error = apr_psprintf(pool, SEDERR_ULMES, lab->asc);
+            return error;
+        }
+
+        if (lab->chain) {
+            return SEDERR_INTERNAL;
+        }
+    }
+    return NULL;
+}
+
+/*
+ * sed_canbe_finalized
+ */
+int sed_canbe_finalized(const sed_commands_t *commands)
+{
+    return commands->canbefinal;
+}
+
+/*
+ * check_finalized
+ */
+static int check_finalized(const sed_commands_t *commands)
+{
+    const sed_label_t *lab;
+    if (commands->depth) {
+        return 0;
+    }
+
+    /* Empty branch chain is not a issue */
+    for (lab = commands->labtab + 1; lab < commands->lab; lab++) {
+        if (lab->address == 0 || (lab->chain)) {
+            return 0;
+        }
+    }
+    return 1;
+}
+
+/*
+ * dechain
+ */
+static void dechain(sed_label_t *lpt, sed_reptr_t *address)
+{
+    sed_reptr_t *rep;
+    if ((lpt == NULL) || (lpt->chain == NULL) || (address == NULL))
+        return;
+    rep = lpt->chain;
+    while (rep->lb1) {
+        sed_reptr_t *next;
+
+        next = rep->lb1;
+        rep->lb1 = address;
+        rep = next;
+    }
+    rep->lb1 = address;
+    lpt->chain = NULL;
+}
+
+/*
+ * fcomp
+ */
+static int fcomp(sed_commands_t *commands, apr_file_t *fin)
+{
+    char *p, *op, *tp;
+    sed_reptr_t *pt, *pt1;
+    int i, ii;
+    sed_label_t *lpt;
+    char fnamebuf[APR_PATH_MAX];
+    apr_status_t status;
+    sed_comp_args compargs;
+
+    op = commands->lastre;
+    if (!commands->linebuf) {
+        commands->linebuf = apr_pcalloc(commands->pool, LBSIZE + 1);
+    }
+
+    if (rline(commands, fin, commands->linebuf,
+              (commands->linebuf + LBSIZE + 1)) < 0)
+        return 0;
+    if (*commands->linebuf == '#') {
+        if (commands->linebuf[1] == 'n')
+            commands->nflag = 1;
+    }
+    else {
+        commands->cp = commands->linebuf;
+        goto comploop;
+    }
+
+    for (;;) {
+        if (rline(commands, fin, commands->linebuf,
+                  (commands->linebuf + LBSIZE + 1)) < 0)
+            break;
+
+        commands->cp = commands->linebuf;
+
+comploop:
+        while (*commands->cp == ' ' || *commands->cp == '\t')
+            commands->cp++;
+        if (*commands->cp == '\0' || *commands->cp == '#')
+            continue;
+        if (*commands->cp == ';') {
+            commands->cp++;
+            goto comploop;
+        }
+
+        p = address(commands, commands->rep->ad1, &status);
+        if (status != APR_SUCCESS) {
+            command_errf(commands, SEDERR_CGMES, commands->linebuf);
+            return -1;
+        }
+
+        if (p == commands->rep->ad1) {
+            if (op)
+                commands->rep->ad1 = op;
+            else {
+                command_errf(commands, SEDERR_NRMES);
+                return -1;
+            }
+        } else if (p == 0) {
+            p = commands->rep->ad1;
+            commands->rep->ad1 = 0;
+        } else {
+            op = commands->rep->ad1;
+            if (*commands->cp == ',' || *commands->cp == ';') {
+                commands->cp++;
+                commands->rep->ad2 = p;
+                p = address(commands, commands->rep->ad2, &status);
+                if ((status != APR_SUCCESS) || (p == 0)) {
+                    command_errf(commands, SEDERR_CGMES, commands->linebuf);
+                    return -1;
+                }
+                if (p == commands->rep->ad2)
+                    commands->rep->ad2 = op;
+                else
+                    op = commands->rep->ad2;
+            } else
+                commands->rep->ad2 = 0;
+        }
+
+        if(p > &commands->respace[RESIZE-1]) {
+            command_errf(commands, SEDERR_TMMES);
+            return -1;
+        }
+
+        while (*commands->cp == ' ' || *commands->cp == '\t')
+            commands->cp++;
+
+swit:
+        switch(*commands->cp++) {
+        default:
+            command_errf(commands, SEDERR_UCMES, commands->linebuf);
+            return -1;
+
+        case '!':
+            commands->rep->negfl = 1;
+            goto swit;
+
+        case '{':
+            commands->rep->command = BCOM;
+            commands->rep->negfl = !(commands->rep->negfl);
+            commands->cmpend[commands->depth++] = &commands->rep->lb1;
+            commands->rep = alloc_reptr(commands);
+            commands->rep->ad1 = p;
+            if (*commands->cp == '\0')
+                continue;
+            goto comploop;
+
+        case '}':
+            if (commands->rep->ad1) {
+                command_errf(commands, SEDERR_AD0MES, commands->linebuf);
+                return -1;
+            }
+
+            if (--commands->depth < 0) {
+                command_errf(commands, SEDERR_TMCMES);
+                return -1;
+            }
+            *commands->cmpend[commands->depth] = commands->rep;
+
+            commands->rep->ad1 = p;
+            continue;
+
+        case '=':
+            commands->rep->command = EQCOM;
+            if (commands->rep->ad2) {
+                command_errf(commands, SEDERR_AD1MES, commands->linebuf);
+                return -1;
+            }
+            break;
+
+        case ':':
+            if (commands->rep->ad1) {
+                command_errf(commands, SEDERR_AD0MES, commands->linebuf);
+                return -1;
+            }
+
+            while (*commands->cp++ == ' ');
+            commands->cp--;
+
+            tp = commands->lab->asc;
+            while ((*tp++ = *commands->cp++)) {
+                if (tp >= &(commands->lab->asc[8])) {
+                    command_errf(commands, SEDERR_LTLMES, commands->linebuf);
+                    return -1;
+                }
+            }
+            *--tp = '\0';
+
+            if ((lpt = search(commands)) != NULL) {
+                if (lpt->address) {
+                    command_errf(commands, SEDERR_DLMES, commands->linebuf);
+                    return -1;
+                }
+                dechain(lpt, commands->rep);
+            } else {
+                commands->lab->chain = 0;
+                lpt = commands->lab;
+                if (++commands->lab >= commands->labend) {
+                    command_errf(commands, SEDERR_TMLMES, commands->linebuf);
+                    return -1;
+                }
+            }
+            lpt->address = commands->rep;
+            commands->rep->ad1 = p;
+
+            continue;
+
+        case 'a':
+            commands->rep->command = ACOM;
+            if (commands->rep->ad2) {
+                command_errf(commands, SEDERR_AD1MES, commands->linebuf);
+                return -1;
+            }
+            if (*commands->cp == '\\')
+                commands->cp++;
+            if (*commands->cp++ != '\n') {
+                command_errf(commands, SEDERR_CGMES, commands->linebuf);
+                return -1;
+            }
+            commands->rep->re1 = p;
+            p = text(commands, commands->rep->re1, commands->reend);
+            if (p == NULL)
+                return -1;
+            break;
+
+        case 'c':
+            commands->rep->command = CCOM;
+            if (*commands->cp == '\\') commands->cp++;
+            if (*commands->cp++ != ('\n')) {
+                command_errf(commands, SEDERR_CGMES, commands->linebuf);
+                return -1;
+            }
+            commands->rep->re1 = p;
+            p = text(commands, commands->rep->re1, commands->reend);
+            if (p == NULL)
+                return -1;
+            break;
+
+        case 'i':
+            commands->rep->command = ICOM;
+            if (commands->rep->ad2) {
+                command_errf(commands, SEDERR_AD1MES, commands->linebuf);
+                return -1;
+            }
+            if (*commands->cp == '\\') commands->cp++;
+            if (*commands->cp++ != ('\n')) {
+                command_errf(commands, SEDERR_CGMES, commands->linebuf);
+                return -1;
+            }
+            commands->rep->re1 = p;
+            p = text(commands, commands->rep->re1, commands->reend);
+            if (p == NULL)
+                return -1;
+            break;
+
+        case 'g':
+            commands->rep->command = GCOM;
+            break;
+
+        case 'G':
+            commands->rep->command = CGCOM;
+            break;
+
+        case 'h':
+            commands->rep->command = HCOM;
+            break;
+
+        case 'H':
+            commands->rep->command = CHCOM;
+            break;
+
+        case 't':
+            commands->rep->command = TCOM;
+            goto jtcommon;
+
+        case 'b':
+            commands->rep->command = BCOM;
+jtcommon:
+            while (*commands->cp++ == ' ');
+            commands->cp--;
+
+            if (*commands->cp == '\0') {
+                if ((pt = commands->labtab->chain) != NULL) {
+                    while ((pt1 = pt->lb1) != NULL)
+                        pt = pt1;
+                    pt->lb1 = commands->rep;
+                } else
+                    commands->labtab->chain = commands->rep;
+                break;
+            }
+            tp = commands->lab->asc;
+            while ((*tp++ = *commands->cp++))
+                if (tp >= &(commands->lab->asc[8])) {
+                    command_errf(commands, SEDERR_LTLMES, commands->linebuf);
+                    return -1;
+                }
+            commands->cp--;
+            *--tp = '\0';
+
+            if ((lpt = search(commands)) != NULL) {
+                if (lpt->address) {
+                    commands->rep->lb1 = lpt->address;
+                } else {
+                    pt = lpt->chain;
+                    while ((pt1 = pt->lb1) != NULL)
+                        pt = pt1;
+                    pt->lb1 = commands->rep;
+                }
+            } else {
+                commands->lab->chain = commands->rep;
+                commands->lab->address = 0;
+                if (++commands->lab >= commands->labend) {
+                    command_errf(commands, SEDERR_TMLMES, commands->linebuf);
+                    return -1;
+                }
+            }
+            break;
+
+        case 'n':
+            commands->rep->command = NCOM;
+            break;
+
+        case 'N':
+            commands->rep->command = CNCOM;
+            break;
+
+        case 'p':
+            commands->rep->command = PCOM;
+            break;
+
+        case 'P':
+            commands->rep->command = CPCOM;
+            break;
+
+        case 'r':
+            commands->rep->command = RCOM;
+            if (commands->rep->ad2) {
+                command_errf(commands, SEDERR_AD1MES, commands->linebuf);
+                return -1;
+            }
+            if (*commands->cp++ != ' ') {
+                command_errf(commands, SEDERR_CGMES, commands->linebuf);
+                return -1;
+            }
+            commands->rep->re1 = p;
+            p = text(commands, commands->rep->re1, commands->reend);
+            if (p == NULL)
+                return -1;
+            break;
+
+        case 'd':
+            commands->rep->command = DCOM;
+            break;
+
+        case 'D':
+            commands->rep->command = CDCOM;
+            commands->rep->lb1 = commands->ptrspace;
+            break;
+
+        case 'q':
+            commands->rep->command = QCOM;
+            if (commands->rep->ad2) {
+                command_errf(commands, SEDERR_AD1MES, commands->linebuf);
+                return -1;
+            }
+            break;
+
+        case 'l':
+            commands->rep->command = LCOM;
+            break;
+
+        case 's':
+            commands->rep->command = SCOM;
+            commands->sseof = *commands->cp++;
+            commands->rep->re1 = p;
+            p = comple(commands, &compargs, (char *) 0, commands->rep->re1,
+                       commands->reend, commands->sseof);
+            if (p == NULL)
+                return -1;
+            if (p == commands->rep->re1) {
+                if (op)
+                    commands->rep->re1 = op;
+                else {
+                    command_errf(commands, SEDERR_NRMES);
+                    return -1;
+                }
+            } else 
+                op = commands->rep->re1;
+            commands->rep->rhs = p;
+
+            p = compsub(commands, &compargs, commands->rep->rhs);
+            if ((p) == NULL)
+                return -1;
+
+            if (*commands->cp == 'g') {
+                commands->cp++;
+                commands->rep->gfl = 999;
+            } else if (commands->gflag)
+                commands->rep->gfl = 999;
+
+            if (*commands->cp >= '1' && *commands->cp <= '9') {
+                i = *commands->cp - '0';
+                commands->cp++;
+                while (1) {
+                    ii = *commands->cp;
+                    if (ii < '0' || ii > '9')
+                        break;
+                    i = i*10 + ii - '0';
+                    if (i > 512) {
+                        command_errf(commands, SEDERR_TOOBIG, commands->linebuf);
+                        return -1;
+                    }
+                    commands->cp++;
+                }
+                commands->rep->gfl = i;
+            }
+
+            if (*commands->cp == 'p') {
+                commands->cp++;
+                commands->rep->pfl = 1;
+            }
+
+            if (*commands->cp == 'P') {
+                commands->cp++;
+                commands->rep->pfl = 2;
+            }
+
+            if (*commands->cp == 'w') {
+                commands->cp++;
+                if (*commands->cp++ !=  ' ') {
+                    command_errf(commands, SEDERR_SMMES, commands->linebuf);
+                    return -1;
+                }
+                if (text(commands, fnamebuf, &fnamebuf[APR_PATH_MAX]) == NULL) {
+                    command_errf(commands, SEDERR_FNTL, commands->linebuf);
+                    return -1;
+                }
+                for (i = commands->nfiles - 1; i >= 0; i--)
+                    if (strcmp(fnamebuf,commands->fname[i]) == 0) {
+                        commands->rep->findex = i;
+                        goto done;
+                    }
+                if (commands->nfiles >= NWFILES) {
+                    command_errf(commands, SEDERR_TMWFMES);
+                    return -1;
+                }
+                commands->fname[commands->nfiles] =
+                            apr_pstrdup(commands->pool, fnamebuf);
+                if (commands->fname[commands->nfiles] == NULL) {
+                    command_errf(commands, SEDERR_OOMMES);
+                    return -1;
+                }
+                commands->rep->findex = commands->nfiles++;
+            }
+            break;
+
+        case 'w':
+            commands->rep->command = WCOM;
+            if (*commands->cp++ != ' ') {
+                command_errf(commands, SEDERR_SMMES, commands->linebuf);
+                return -1;
+            }
+            if (text(commands, fnamebuf, &fnamebuf[APR_PATH_MAX]) == NULL) {
+                command_errf(commands, SEDERR_FNTL, commands->linebuf);
+                return -1;
+            }
+            for (i = commands->nfiles - 1; i >= 0; i--)
+                if (strcmp(fnamebuf, commands->fname[i]) == 0) {
+                    commands->rep->findex = i;
+                    goto done;
+                }
+            if (commands->nfiles >= NWFILES) {
+                command_errf(commands, SEDERR_TMWFMES);
+                return -1;
+            }
+            if ((commands->fname[commands->nfiles] =
+                        apr_pstrdup(commands->pool, fnamebuf)) == NULL) {
+                command_errf(commands, SEDERR_OOMMES);
+                return -1;
+            }
+
+            commands->rep->findex = commands->nfiles++;
+            break;
+
+        case 'x':
+            commands->rep->command = XCOM;
+            break;
+
+        case 'y':
+            commands->rep->command = YCOM;
+            commands->sseof = *commands->cp++;
+            commands->rep->re1 = p;
+            p = ycomp(commands, commands->rep->re1);
+            if (p == NULL)
+                return -1;
+            break;
+        }
+done:
+        commands->rep = alloc_reptr(commands);
+
+        commands->rep->ad1 = p;
+
+        if (*commands->cp++ != '\0') {
+            if (commands->cp[-1] == ';')
+                goto comploop;
+            command_errf(commands, SEDERR_CGMES, commands->linebuf);
+            return -1;
+        }
+    }
+    commands->rep->command = 0;
+    commands->lastre = op;
+
+    return 0;
+}
+
+static char *compsub(sed_commands_t *commands,
+                     sed_comp_args *compargs, char *rhsbuf)
+{
+    char   *p, *q;
+
+    p = rhsbuf;
+    q = commands->cp;
+    for(;;) {
+        if(p > &commands->respace[RESIZE-1]) {
+            command_errf(commands, SEDERR_TMMES, commands->linebuf);
+            return NULL;
+        }
+        if((*p = *q++) == '\\') {
+            p++;
+            if(p > &commands->respace[RESIZE-1]) {
+                command_errf(commands, SEDERR_TMMES, commands->linebuf);
+                return NULL;
+            }
+            *p = *q++;
+            if(*p > compargs->nbra + '0' && *p <= '9') {
+                command_errf(commands, SEDERR_DOORNG, commands->linebuf);
+                return NULL;
+            }
+            p++;
+            continue;
+        }
+        if(*p == commands->sseof) {
+            *p++ = '\0';
+            commands->cp = q;
+            return(p);
+        }
+          if(*p++ == '\0') {
+            command_errf(commands, SEDERR_EDMOSUB, commands->linebuf);
+            return NULL;
+        }
+    }
+}
+
+/*
+ * rline
+ */
+static int rline(sed_commands_t *commands, apr_file_t *fin,
+                 char *lbuf, char *lbend)
+{
+    char   *p;
+    const char *q;
+    int    t;
+    apr_size_t bytes_read;
+
+    p = lbuf;
+
+    if(commands->eflag) {
+        if(commands->eflag > 0) {
+            commands->eflag = -1;
+            q = commands->earg;
+            while((t = *q++) != '\0') {
+                if(t == '\n') {
+                    commands->saveq = q;
+                    goto out1;
+                }
+                if (p < lbend)
+                    *p++ = t;
+                if(t == '\\') {
+                    if((t = *q++) == '\0') {
+                        commands->saveq = NULL;
+                        return(-1);
+                    }
+                    if (p < lbend)
+                        *p++ = t;
+                }
+            }
+            commands->saveq = NULL;
+
+        out1:
+            if (p == lbend) {
+                command_errf(commands, SEDERR_CLTL, commands->linebuf);
+                return -1;
+            }
+            *p = '\0';
+            return(1);
+        }
+        if((q = commands->saveq) == 0)    return(-1);
+
+        while((t = *q++) != '\0') {
+            if(t == '\n') {
+                commands->saveq = q;
+                goto out2;
+            }
+            if(p < lbend)
+                *p++ = t;
+            if(t == '\\') {
+                if((t = *q++) == '\0') {
+                    commands->saveq = NULL;
+                    return(-1);
+                }
+                if (p < lbend)
+                    *p++ = t;
+            }
+        }
+        commands->saveq = NULL;
+
+    out2:
+        if (p == lbend) {
+            command_errf(commands, SEDERR_CLTL, commands->linebuf);
+            return -1;
+        }
+        *p = '\0';
+        return(1);
+    }
+
+    bytes_read = 1;
+    /* XXX extremely inefficient 1 byte reads */
+    while (apr_file_read(fin, &t, &bytes_read) != APR_SUCCESS) {
+        if(t == '\n') {
+            if (p == lbend) {
+                command_errf(commands, SEDERR_CLTL, commands->linebuf);
+                return -1;
+            }
+            *p = '\0';
+            return(1);
+        }
+        if (p < lbend)
+            *p++ = t;
+        if(t == '\\') {
+            bytes_read = 1;
+            if (apr_file_read(fin, &t, &bytes_read) != APR_SUCCESS) {
+                return -1;
+            }
+            if(p < lbend)
+                *p++ = t;
+        }
+        bytes_read = 1;
+    }
+    return(-1);
+}
+
+/*
+ * address
+ */
+static char *address(sed_commands_t *commands, char *expbuf,
+                     apr_status_t* status)
+{
+    char   *rcp;
+    apr_int64_t lno;
+    sed_comp_args compargs;
+
+    *status = APR_SUCCESS;
+    if(*commands->cp == '$') {
+        if (expbuf > &commands->respace[RESIZE-2]) {
+            command_errf(commands, SEDERR_TMMES, commands->linebuf);
+            *status = APR_EGENERAL;
+            return NULL;
+        }
+        commands->cp++;
+        *expbuf++ = CEND;
+        *expbuf++ = CCEOF;
+        return(expbuf);
+    }
+    if (*commands->cp == '/' || *commands->cp == '\\' ) {
+        if ( *commands->cp == '\\' )
+            commands->cp++;
+        commands->sseof = *commands->cp++;
+        return(comple(commands, &compargs, (char *) 0, expbuf, commands->reend,
+                      commands->sseof));
+    }
+
+    rcp = commands->cp;
+    lno = 0;
+
+    while(*rcp >= '0' && *rcp <= '9')
+        lno = lno*10 + *rcp++ - '0';
+
+    if(rcp > commands->cp) {
+        if (expbuf > &commands->respace[RESIZE-3]) {
+            command_errf(commands, SEDERR_TMMES, commands->linebuf);
+            *status = APR_EGENERAL;
+            return NULL;
+        }
+        *expbuf++ = CLNUM;
+        *expbuf++ = commands->nlno;
+        commands->tlno[commands->nlno++] = lno;
+        if(commands->nlno >= SED_NLINES) {
+            command_errf(commands, SEDERR_TMLNMES, commands->linebuf);
+            *status = APR_EGENERAL;
+            return NULL;
+        }
+        *expbuf++ = CCEOF;
+        commands->cp = rcp;
+        return(expbuf);
+    }
+    return(NULL);
+}
+
+/*
+ * text
+ */
+static char *text(sed_commands_t *commands, char *textbuf, char *tbend)
+{
+    char   *p, *q;
+
+    p = textbuf;
+    q = commands->cp;
+#ifndef S5EMUL
+    /*
+     * Strip off indentation from text to be inserted.
+     */
+    while(*q == '\t' || *q == ' ')    q++;
+#endif
+    for(;;) {
+
+        if(p > tbend)
+            return(NULL);    /* overflowed the buffer */
+        if((*p = *q++) == '\\')
+            *p = *q++;
+        if(*p == '\0') {
+            commands->cp = --q;
+            return(++p);
+        }
+#ifndef S5EMUL
+        /*
+         * Strip off indentation from text to be inserted.
+         */
+        if(*p == '\n') {
+            while(*q == '\t' || *q == ' ')    q++;
+        }
+#endif
+        p++;
+    }
+}
+
+
+/*
+ * search
+ */
+static sed_label_t *search(sed_commands_t *commands)
+{
+    sed_label_t *rp;
+    sed_label_t *ptr;
+
+    rp = commands->labtab;
+    ptr = commands->lab;
+    while (rp < ptr) {
+        if (strcmp(rp->asc, ptr->asc) == 0)
+            return rp;
+        rp++;
+    }
+
+    return 0;
+}
+
+/*
+ * ycomp
+ */
+static char *ycomp(sed_commands_t *commands, char *expbuf)
+{
+    char    c;
+    int cint; /* integer value of char c */
+    char *ep, *tsp;
+    int i;
+    char    *sp;
+
+    ep = expbuf;
+    if(ep + 0377 > &commands->respace[RESIZE-1]) {
+        command_errf(commands, SEDERR_TMMES, commands->linebuf);
+        return NULL;
+    }
+    sp = commands->cp;
+    for(tsp = commands->cp; (c = *tsp) != commands->sseof; tsp++) {
+        if(c == '\\')
+            tsp++;
+        if(c == '\0' || c == '\n') {
+            command_errf(commands, SEDERR_EDMOSTR, commands->linebuf);
+            return NULL;
+        }
+    }
+    tsp++;
+    memset(ep, 0, 0400);
+
+    while((c = *sp++) != commands->sseof) {
+        c &= 0377;
+        if(c == '\\' && *sp == 'n') {
+            sp++;
+            c = '\n';
+        }
+        cint = (int) c;
+        if((ep[cint] = *tsp++) == '\\' && *tsp == 'n') {
+            ep[cint] = '\n';
+            tsp++;
+        }
+        if(ep[cint] == commands->sseof || ep[cint] == '\0') {
+            command_errf(commands, SEDERR_TSNTSS, commands->linebuf);
+        }
+    }
+    if(*tsp != commands->sseof) {
+        if(*tsp == '\0') {
+            command_errf(commands, SEDERR_EDMOSTR, commands->linebuf);
+        }
+        else {
+            command_errf(commands, SEDERR_TSNTSS, commands->linebuf);
+        }
+        return NULL;
+    }
+    commands->cp = ++tsp;
+
+    for(i = 0; i < 0400; i++)
+        if(ep[i] == 0)
+            ep[i] = i;
+
+    return(ep + 0400);
+}
+
+/*
+ * comple
+ */
+static char *comple(sed_commands_t *commands, sed_comp_args *compargs,
+                    char *x1, char *ep, char *x3, char x4)
+{
+    char *p;
+
+    p = sed_compile(commands, compargs, ep + 1, x3, x4);
+    if(p == ep + 1)
+        return(ep);
+    *ep = compargs->circf;
+    return(p);
+}
+
+/*
+ * alloc_reptr
+ */
+static sed_reptr_t *alloc_reptr(sed_commands_t *commands)
+{
+    sed_reptr_t *var;
+
+    var = apr_pcalloc(commands->pool, sizeof(sed_reptr_t));
+    if (var == NULL) {
+        command_errf(commands, SEDERR_OOMMES);
+        return 0;
+    }
+
+    var->nrep = commands->nrep;
+    var->findex = -1;
+    commands->nrep++;
+
+    if (commands->ptrspace == NULL)
+        commands->ptrspace = var;
+    else
+        commands->ptrend->next = var;
+
+    commands->ptrend = var;
+    commands->labtab->address = var;
+    return var;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/mod_sed/sed1.c	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,1018 @@
+/*
+ * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Use is subject to license terms.
+ *
+ *	Copyright (c) 1984 AT&T
+ *	  All Rights Reserved  	
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *  http://www.apache.org/licenses/LICENSE-2.0. 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
+ * or implied. 
+ * See the License for the specific language governing permissions and
+ * limitations under the License. 
+ */
+
+#include "apr.h"
+#include "apr_lib.h"
+#include "libsed.h"
+#include "sed.h"
+#include "apr_strings.h"
+#include "regexp.h"
+
+char    *trans[040]  = {
+    "\\01",
+    "\\02",
+    "\\03",
+    "\\04",
+    "\\05",
+    "\\06",
+    "\\07",
+    "\\10",
+    "\\11",
+    "\n",
+    "\\13",
+    "\\14",
+    "\\15",
+    "\\16",
+    "\\17",
+    "\\20",
+    "\\21",
+    "\\22",
+    "\\23",
+    "\\24",
+    "\\25",
+    "\\26",
+    "\\27",
+    "\\30",
+    "\\31",
+    "\\32",
+    "\\33",
+    "\\34",
+    "\\35",
+    "\\36",
+    "\\37"
+};
+char rub[] = {"\\177"};
+
+extern int sed_step(char *p1, char *p2, int circf, step_vars_storage *vars);
+static int substitute(sed_eval_t *eval, sed_reptr_t *ipc,
+                      step_vars_storage *step_vars);
+static apr_status_t execute(sed_eval_t *eval);
+static int match(sed_eval_t *eval, char *expbuf, int gf,
+                 step_vars_storage *step_vars);
+static apr_status_t dosub(sed_eval_t *eval, char *rhsbuf, int n,
+                          step_vars_storage *step_vars);
+static char *place(sed_eval_t *eval, char *asp, char *al1, char *al2);
+static apr_status_t command(sed_eval_t *eval, sed_reptr_t *ipc,
+                            step_vars_storage *step_vars);
+static apr_status_t wline(sed_eval_t *eval, char *buf, int sz);
+static apr_status_t arout(sed_eval_t *eval);
+
+static void eval_errf(sed_eval_t *eval, const char *fmt, ...)
+{
+    if (eval->errfn && eval->pool) {
+        va_list args;
+        const char* error;
+        va_start(args, fmt);
+        error = apr_pvsprintf(eval->pool, fmt, args);
+        eval->errfn(eval->data, error);
+        va_end(args);
+    }
+}
+
+#define INIT_BUF_SIZE 1024
+
+/*
+ * grow_buffer
+ */
+static void grow_buffer(apr_pool_t *pool, char **buffer,
+                        char **spend, unsigned int *cursize,
+                        unsigned int newsize)
+{
+    char* newbuffer = NULL;
+    int spendsize = 0;
+    if (*cursize >= newsize)
+        return;
+    /* Avoid number of times realloc is called. It could cause huge memory
+     * requirement if line size is huge e.g 2 MB */
+    if (newsize < *cursize * 2) {
+        newsize = *cursize * 2;
+    }
+
+    /* Align it to 4 KB boundary */
+    newsize = (newsize  + ((1 << 12) - 1)) & ~((1 << 12) -1);
+    newbuffer = apr_pcalloc(pool, newsize);
+    if (*spend && *buffer && (*cursize > 0)) {
+        spendsize = *spend - *buffer;
+    }
+    if ((*cursize > 0) && *buffer) {
+        memcpy(newbuffer, *buffer, *cursize);
+    }
+    *buffer = newbuffer;
+    *cursize = newsize;
+    if (spend != buffer) {
+        *spend = *buffer + spendsize;
+    }
+}
+
+/*
+ * grow_line_buffer
+ */
+static void grow_line_buffer(sed_eval_t *eval, int newsize)
+{
+    grow_buffer(eval->pool, &eval->linebuf, &eval->lspend,
+                &eval->lsize, newsize);
+}
+
+/*
+ * grow_hold_buffer
+ */
+static void grow_hold_buffer(sed_eval_t *eval, int newsize)
+{
+    grow_buffer(eval->pool, &eval->holdbuf, &eval->hspend,
+                &eval->hsize, newsize);
+}
+
+/*
+ * grow_gen_buffer
+ */
+static void grow_gen_buffer(sed_eval_t *eval, int newsize,
+                            char **gspend)
+{
+    if (gspend == NULL) {
+        gspend = &eval->genbuf;
+    }
+    grow_buffer(eval->pool, &eval->genbuf, gspend,
+                &eval->gsize, newsize);
+    eval->lcomend = &eval->genbuf[71];
+}
+
+/*
+ * appendmem_to_linebuf
+ */
+static void appendmem_to_linebuf(sed_eval_t *eval, const char* sz, int len)
+{
+    unsigned int reqsize = (eval->lspend - eval->linebuf) + len;
+    if (eval->lsize < reqsize) {
+        grow_line_buffer(eval, reqsize);
+    }
+    memcpy(eval->lspend, sz, len);
+    eval->lspend += len;
+}
+
+/*
+ * append_to_linebuf
+ */
+static void append_to_linebuf(sed_eval_t *eval, const char* sz)
+{
+    int len = strlen(sz);
+    /* Copy string including null character */
+    appendmem_to_linebuf(eval, sz, len + 1);
+    --eval->lspend; /* lspend will now point to NULL character */
+}
+
+/*
+ * copy_to_linebuf
+ */
+static void copy_to_linebuf(sed_eval_t *eval, const char* sz)
+{
+    eval->lspend = eval->linebuf;
+    append_to_linebuf(eval, sz);
+}
+
+/*
+ * append_to_holdbuf
+ */
+static void append_to_holdbuf(sed_eval_t *eval, const char* sz)
+{
+    int len = strlen(sz);
+    unsigned int reqsize = (eval->hspend - eval->holdbuf) + len + 1;
+    if (eval->hsize <= reqsize) {
+        grow_hold_buffer(eval, reqsize);
+    }
+    strcpy(eval->hspend, sz);
+    /* hspend will now point to NULL character */
+    eval->hspend += len;
+}
+
+/*
+ * copy_to_holdbuf
+ */
+static void copy_to_holdbuf(sed_eval_t *eval, const char* sz)
+{
+    eval->hspend = eval->holdbuf;
+    append_to_holdbuf(eval, sz);
+}
+
+/*
+ * append_to_genbuf
+ */
+static void append_to_genbuf(sed_eval_t *eval, const char* sz, char **gspend)
+{
+    int len = strlen(sz);
+    unsigned int reqsize = (*gspend - eval->genbuf) + len + 1;
+    if (eval->gsize < reqsize) {
+        grow_gen_buffer(eval, reqsize, gspend);
+    }
+    strcpy(*gspend, sz);
+    /* *gspend will now point to NULL character */
+    *gspend += len;
+}
+
+/*
+ * copy_to_genbuf
+ */
+static void copy_to_genbuf(sed_eval_t *eval, const char* sz)
+{
+    int len = strlen(sz);
+    unsigned int reqsize = len + 1;
+    if (eval->gsize < reqsize) {
+        grow_gen_buffer(eval, reqsize, NULL);
+    }
+}
+
+/*
+ * sed_init_eval
+ */
+apr_status_t sed_init_eval(sed_eval_t *eval, sed_commands_t *commands, sed_err_fn_t *errfn, void *data, sed_write_fn_t *writefn, apr_pool_t* p)
+{
+    memset(eval, 0, sizeof(*eval));
+    eval->pool = p;
+    eval->writefn = writefn;
+    return sed_reset_eval(eval, commands, errfn, data);
+}
+
+/*
+ * sed_reset_eval
+ */
+apr_status_t sed_reset_eval(sed_eval_t *eval, sed_commands_t *commands, sed_err_fn_t *errfn, void *data)
+{
+    int i;
+
+    eval->errfn = errfn;
+    eval->data = data;
+
+    eval->commands = commands;
+
+    eval->lnum = 0;
+    eval->fout = NULL;
+
+    if (eval->linebuf == NULL) {
+        eval->lsize = INIT_BUF_SIZE;
+        eval->linebuf = apr_pcalloc(eval->pool, eval->lsize);
+    }
+    if (eval->holdbuf == NULL) {
+        eval->hsize = INIT_BUF_SIZE;
+        eval->holdbuf = apr_pcalloc(eval->pool, eval->hsize);
+    }
+    if (eval->genbuf == NULL) {
+        eval->gsize = INIT_BUF_SIZE;
+        eval->genbuf = apr_pcalloc(eval->pool, eval->gsize);
+    }
+    eval->lspend = eval->linebuf;
+    eval->hspend = eval->holdbuf;
+    eval->lcomend = &eval->genbuf[71];
+
+    for (i = 0; i < sizeof(eval->abuf) / sizeof(eval->abuf[0]); i++)
+        eval->abuf[i] = NULL;
+    eval->aptr = eval->abuf;
+    eval->pending = NULL;
+    eval->inar = apr_pcalloc(eval->pool, commands->nrep * sizeof(unsigned char));
+    eval->nrep = commands->nrep;
+
+    eval->dolflag = 0;
+    eval->sflag = 0;
+    eval->jflag = 0;
+    eval->delflag = 0;
+    eval->lreadyflag = 0;
+    eval->quitflag = 0;
+    eval->finalflag = 1; /* assume we're evaluating only one file/stream */
+    eval->numpass = 0;
+    eval->nullmatch = 0;
+    eval->col = 0;
+
+    for (i = 0; i < commands->nfiles; i++) {
+        const char* filename = commands->fname[i];
+        if (apr_file_open(&eval->fcode[i], filename,
+                          APR_WRITE | APR_CREATE, APR_OS_DEFAULT,
+                          eval->pool) != APR_SUCCESS) {
+            eval_errf(eval, SEDERR_COMES, filename);
+            return APR_EGENERAL;
+        }
+    }
+
+    return APR_SUCCESS;
+}
+
+/*
+ * sed_destroy_eval
+ */
+void sed_destroy_eval(sed_eval_t *eval)
+{
+    int i;
+    /* eval->linebuf, eval->holdbuf, eval->genbuf and eval->inar are allocated
+     * on pool. It will be freed when pool will be freed */
+    for (i = 0; i < eval->commands->nfiles; i++) {
+        if (eval->fcode[i] != NULL) {
+            apr_file_close(eval->fcode[i]);
+            eval->fcode[i] = NULL;
+        }
+    }
+}
+
+/*
+ * sed_eval_file
+ */
+apr_status_t sed_eval_file(sed_eval_t *eval, apr_file_t *fin, void *fout)
+{
+    for (;;) {
+        char buf[1024];
+        apr_size_t read_bytes = 0;
+
+        read_bytes = sizeof(buf);
+        if (apr_file_read(fin, buf, &read_bytes) != APR_SUCCESS)
+            break;
+
+        if (sed_eval_buffer(eval, buf, read_bytes, fout) != APR_SUCCESS)
+            return APR_EGENERAL;
+
+        if (eval->quitflag)
+            return APR_SUCCESS;
+    }
+
+    return sed_finalize_eval(eval, fout);
+}
+
+/*
+ * sed_eval_buffer
+ */
+apr_status_t sed_eval_buffer(sed_eval_t *eval, const char *buf, int bufsz, void *fout)
+{
+    apr_status_t rv;
+
+    if (eval->quitflag)
+        return APR_SUCCESS;
+
+    if (!sed_canbe_finalized(eval->commands)) {
+        /* Commands were not finalized properly. */
+        const char* error = sed_get_finalize_error(eval->commands, eval->pool);
+        if (error) {
+            eval_errf(eval, error);
+            return APR_EGENERAL;
+        }
+    }
+
+    eval->fout = fout;
+
+    /* Process leftovers */
+    if (bufsz && eval->lreadyflag) {
+        eval->lreadyflag = 0;
+        eval->lspend--;
+        *eval->lspend = '\0';
+        rv = execute(eval);
+        if (rv != APR_SUCCESS)
+            return rv;
+    }
+
+    while (bufsz) {
+        char *n;
+        int llen;
+
+        n = memchr(buf, '\n', bufsz);
+        if (n == NULL)
+            break;
+
+        llen = n - buf;
+        if (llen == bufsz - 1) {
+            /* This might be the last line; delay its processing */
+            eval->lreadyflag = 1;
+            break;
+        }
+        
+        appendmem_to_linebuf(eval, buf, llen + 1);
+        --eval->lspend;
+        /* replace new line character with NULL */
+        *eval->lspend = '\0';
+        buf += (llen + 1);
+        bufsz -= (llen + 1);
+        rv = execute(eval);
+        if (rv != APR_SUCCESS)
+            return rv;
+        if (eval->quitflag)
+            break;
+    }
+
+    /* Save the leftovers for later */
+    if (bufsz) {
+        appendmem_to_linebuf(eval, buf, bufsz);
+    }
+
+    return APR_SUCCESS;
+}
+
+/*
+ * sed_finalize_eval
+ */
+apr_status_t sed_finalize_eval(sed_eval_t *eval, void *fout)
+{
+    if (eval->quitflag)
+        return APR_SUCCESS;
+
+    if (eval->finalflag)
+        eval->dolflag = 1;
+
+    eval->fout = fout;
+
+    /* Process leftovers */
+    if (eval->lspend > eval->linebuf) {
+        apr_status_t rv;
+
+        if (eval->lreadyflag) {
+            eval->lreadyflag = 0;
+            eval->lspend--;
+        } else {
+            /* Code can probably reach here when last character in output
+             * buffer is not a newline.
+             */
+            /* Assure space for NULL */
+            append_to_linebuf(eval, "");
+        }
+
+        *eval->lspend = '\0';
+        rv = execute(eval);
+        if (rv != APR_SUCCESS)
+            return rv;
+    }
+
+    eval->quitflag = 1;
+
+    return APR_SUCCESS;
+}
+
+/*
+ * execute
+ */
+static apr_status_t execute(sed_eval_t *eval)
+{
+    sed_reptr_t *ipc = eval->commands->ptrspace;
+    step_vars_storage step_vars;
+    apr_status_t rv = APR_SUCCESS;
+
+    eval->lnum++;
+
+    eval->sflag = 0;
+
+    if (eval->pending) {
+        ipc = eval->pending;
+        eval->pending = NULL;
+    }
+
+    memset(&step_vars, 0, sizeof(step_vars));
+
+    while (ipc->command) {
+        char *p1;
+        char *p2;
+        int c;
+
+        p1 = ipc->ad1;
+        p2 = ipc->ad2;
+
+        if (p1) {
+
+            if (eval->inar[ipc->nrep]) {
+                if (*p2 == CEND) {
+                    p1 = 0;
+                } else if (*p2 == CLNUM) {
+                    c = (unsigned char)p2[1];
+                    if (eval->lnum > eval->commands->tlno[c]) {
+                        eval->inar[ipc->nrep] = 0;
+                        if (ipc->negfl)
+                            goto yes;
+                        ipc = ipc->next;
+                        continue;
+                    }
+                    if (eval->lnum == eval->commands->tlno[c]) {
+                        eval->inar[ipc->nrep] = 0;
+                    }
+                } else if (match(eval, p2, 0, &step_vars)) {
+                    eval->inar[ipc->nrep] = 0;
+                }
+            } else if (*p1 == CEND) {
+                if (!eval->dolflag) {
+                    if (ipc->negfl)
+                        goto yes;
+                    ipc = ipc->next;
+                    continue;
+                }
+            } else if (*p1 == CLNUM) {
+                c = (unsigned char)p1[1];
+                if (eval->lnum != eval->commands->tlno[c]) {
+                    if (ipc->negfl)
+                        goto yes;
+                    ipc = ipc->next;
+                    continue;
+                }
+                if (p2)
+                    eval->inar[ipc->nrep] = 1;
+            } else if (match(eval, p1, 0, &step_vars)) {
+                if (p2)
+                    eval->inar[ipc->nrep] = 1;
+            } else {
+                if (ipc->negfl)
+                    goto yes;
+                ipc = ipc->next;
+                continue;
+            }
+        }
+
+        if (ipc->negfl) {
+            ipc = ipc->next;
+            continue;
+        }
+
+yes:
+        rv = command(eval, ipc, &step_vars);
+        if (rv != APR_SUCCESS)
+            return rv;
+
+        if (eval->quitflag)
+            return APR_SUCCESS;
+
+        if (eval->pending)
+            return APR_SUCCESS;
+
+        if (eval->delflag)
+            break;
+
+        if (eval->jflag) {
+            eval->jflag = 0;
+            if ((ipc = ipc->lb1) == 0) {
+                ipc = eval->commands->ptrspace;
+                break;
+            }
+        } else
+            ipc = ipc->next;
+    }
+
+    if (!eval->commands->nflag && !eval->delflag) {
+        rv = wline(eval, eval->linebuf, eval->lspend - eval->linebuf);
+        if (rv != APR_SUCCESS)
+            return rv;
+    }
+
+    if (eval->aptr > eval->abuf)
+        rv = arout(eval);
+
+    eval->delflag = 0;
+
+    eval->lspend = eval->linebuf;
+
+    return rv;
+}
+
+/*
+ * match
+ */
+static int match(sed_eval_t *eval, char *expbuf, int gf,
+                 step_vars_storage *step_vars)
+{
+    char   *p1;
+    int circf;
+
+    if(gf) {
+        if(*expbuf)    return(0);
+        step_vars->locs = p1 = step_vars->loc2;
+    } else {
+        p1 = eval->linebuf;
+        step_vars->locs = 0;
+    }
+
+    circf = *expbuf++;
+    return(sed_step(p1, expbuf, circf, step_vars));
+}
+
+/*
+ * substitute
+ */
+static int substitute(sed_eval_t *eval, sed_reptr_t *ipc,
+                      step_vars_storage *step_vars)
+{
+    if(match(eval, ipc->re1, 0, step_vars) == 0)    return(0);
+
+    eval->numpass = 0;
+    eval->sflag = 0;        /* Flags if any substitution was made */
+    if (dosub(eval, ipc->rhs, ipc->gfl, step_vars) != APR_SUCCESS)
+        return -1;
+
+    if(ipc->gfl) {
+        while(*step_vars->loc2) {
+            if(match(eval, ipc->re1, 1, step_vars) == 0) break;
+            if (dosub(eval, ipc->rhs, ipc->gfl, step_vars) != APR_SUCCESS)
+                return -1;
+        }
+    }
+    return(eval->sflag);
+}
+
+/*
+ * dosub
+ */
+static apr_status_t dosub(sed_eval_t *eval, char *rhsbuf, int n,
+                          step_vars_storage *step_vars)
+{
+    char *lp, *sp, *rp;
+    int c;
+    apr_status_t rv = APR_SUCCESS;
+
+    if(n > 0 && n < 999) {
+        eval->numpass++;
+        if(n != eval->numpass) return APR_SUCCESS;
+    }
+    eval->sflag = 1;
+    lp = eval->linebuf;
+    sp = eval->genbuf;
+    rp = rhsbuf;
+    sp = place(eval, sp, lp, step_vars->loc1);
+    while ((c = *rp++) != 0) {
+        if (c == '&') {
+            sp = place(eval, sp, step_vars->loc1, step_vars->loc2);
+            if (sp == NULL)
+                return APR_EGENERAL;
+        }
+        else if (c == '\\') {
+            c = *rp++;
+            if (c >= '1' && c < NBRA+'1') {
+                sp = place(eval, sp, step_vars->braslist[c-'1'],
+                           step_vars->braelist[c-'1']);
+                if (sp == NULL)
+                    return APR_EGENERAL;
+            }
+            else
+                *sp++ = c;
+          } else
+            *sp++ = c;
+        if (sp >= eval->genbuf + eval->gsize) {
+            /* expand genbuf and set the sp appropriately */
+            grow_gen_buffer(eval, eval->gsize + 1024, &sp);
+        }
+    }
+    lp = step_vars->loc2;
+    step_vars->loc2 = sp - eval->genbuf + eval->linebuf;
+    append_to_genbuf(eval, lp, &sp);
+    copy_to_linebuf(eval, eval->genbuf);
+    return rv;
+}
+
+/*
+ * place
+ */
+static char *place(sed_eval_t *eval, char *asp, char *al1, char *al2)
+{
+    char *sp = asp;
+    int n = al2 - al1;
+    unsigned int reqsize = (sp - eval->genbuf) + n + 1;
+
+    if (eval->gsize < reqsize) {
+        grow_gen_buffer(eval, reqsize, &sp);
+    }
+    memcpy(sp, al1, n);
+    return sp + n;
+}
+
+/*
+ * command
+ */
+static apr_status_t command(sed_eval_t *eval, sed_reptr_t *ipc,
+                            step_vars_storage *step_vars)
+{
+    int    i;
+    char   *p1, *p2, *p3;
+    int length;
+    char sz[32]; /* 32 bytes enough to store 64 bit integer in decimal */
+    apr_status_t rv = APR_SUCCESS;
+
+
+    switch(ipc->command) {
+
+        case ACOM:
+            if(eval->aptr >= &eval->abuf[SED_ABUFSIZE]) {
+                eval_errf(eval, SEDERR_TMAMES, eval->lnum);
+            } else {
+                *eval->aptr++ = ipc;
+                *eval->aptr = NULL;
+            }
+            break;
+
+        case CCOM:
+            eval->delflag = 1;
+            if(!eval->inar[ipc->nrep] || eval->dolflag) {
+                for (p1 = ipc->re1; *p1; p1++)
+                    ;
+                rv = wline(eval, ipc->re1, p1 - ipc->re1);
+            }
+            break;
+        case DCOM:
+            eval->delflag++;
+            break;
+        case CDCOM:
+            p1 = eval->linebuf;
+
+            while(*p1 != '\n') {
+                if(*p1++ == 0) {
+                    eval->delflag++;
+                    return APR_SUCCESS;
+                }
+            }
+
+            p1++;
+            copy_to_linebuf(eval, p1);
+            eval->jflag++;
+            break;
+
+        case EQCOM:
+            length = apr_snprintf(sz, sizeof(sz), "%d", (int) eval->lnum);
+            rv = wline(eval, sz, length);
+            break;
+
+        case GCOM:
+            copy_to_linebuf(eval, eval->holdbuf);
+            break;
+
+        case CGCOM:
+            append_to_linebuf(eval, "\n");
+            append_to_linebuf(eval, eval->holdbuf);
+            break;
+
+        case HCOM:
+            copy_to_holdbuf(eval, eval->linebuf);
+            break;
+
+        case CHCOM:
+            append_to_holdbuf(eval, "\n");
+            append_to_holdbuf(eval, eval->linebuf);
+            break;
+
+        case ICOM:
+            for (p1 = ipc->re1; *p1; p1++);
+            rv = wline(eval, ipc->re1, p1 - ipc->re1);
+            break;
+
+        case BCOM:
+            eval->jflag = 1;
+            break;
+
+
+        case LCOM:
+            p1 = eval->linebuf;
+            p2 = eval->genbuf;
+            eval->genbuf[72] = 0;
+            while(*p1)
+                if((unsigned char)*p1 >= 040) {
+                    if(*p1 == 0177) {
+                        p3 = rub;
+                        while ((*p2++ = *p3++) != 0)
+                            if(p2 >= eval->lcomend) {
+                                *p2 = '\\';
+                                rv = wline(eval, eval->genbuf,
+                                           strlen(eval->genbuf));
+                                if (rv != APR_SUCCESS)
+                                    return rv;
+                                p2 = eval->genbuf;
+                            }
+                        p2--;
+                        p1++;
+                        continue;
+                    }
+                    if(!isprint(*p1 & 0377)) {
+                        *p2++ = '\\';
+                        if(p2 >= eval->lcomend) {
+                            *p2 = '\\';
+                            rv = wline(eval, eval->genbuf,
+                                       strlen(eval->genbuf));
+                            if (rv != APR_SUCCESS)
+                                return rv;
+                            p2 = eval->genbuf;
+                        }
+                        *p2++ = (*p1 >> 6) + '0';
+                        if(p2 >= eval->lcomend) {
+                            *p2 = '\\';
+                            rv = wline(eval, eval->genbuf,
+                                       strlen(eval->genbuf));
+                            if (rv != APR_SUCCESS)
+                                return rv;
+                            p2 = eval->genbuf;
+                        }
+                        *p2++ = ((*p1 >> 3) & 07) + '0';
+                        if(p2 >= eval->lcomend) {
+                            *p2 = '\\';
+                            rv = wline(eval, eval->genbuf,
+                                       strlen(eval->genbuf));
+                            if (rv != APR_SUCCESS)
+                                return rv;
+                            p2 = eval->genbuf;
+                        }
+                        *p2++ = (*p1++ & 07) + '0';
+                        if(p2 >= eval->lcomend) {
+                            *p2 = '\\';
+                            rv = wline(eval, eval->genbuf,
+                                       strlen(eval->genbuf));
+                            if (rv != APR_SUCCESS)
+                                return rv;
+                            p2 = eval->genbuf;
+                        }
+                    } else {
+                        *p2++ = *p1++;
+                        if(p2 >= eval->lcomend) {
+                            *p2 = '\\';
+                            rv = wline(eval, eval->genbuf,
+                                       strlen(eval->genbuf));
+                            if (rv != APR_SUCCESS)
+                                return rv;
+                            p2 = eval->genbuf;
+                        }
+                    }
+                } else {
+                    p3 = trans[(unsigned char)*p1-1];
+                    while ((*p2++ = *p3++) != 0)
+                        if(p2 >= eval->lcomend) {
+                            *p2 = '\\';
+                            rv = wline(eval, eval->genbuf,
+                                       strlen(eval->genbuf));
+                            if (rv != APR_SUCCESS)
+                                return rv;
+                            p2 = eval->genbuf;
+                        }
+                    p2--;
+                    p1++;
+                }
+            *p2 = 0;
+            rv = wline(eval, eval->genbuf, strlen(eval->genbuf));
+            break;
+
+        case NCOM:
+            if(!eval->commands->nflag) {
+                rv = wline(eval, eval->linebuf, eval->lspend - eval->linebuf);
+                if (rv != APR_SUCCESS)
+                    return rv;
+            }
+
+            if(eval->aptr > eval->abuf) {
+                rv = arout(eval);
+                if (rv != APR_SUCCESS)
+                    return rv;
+            }
+            eval->lspend = eval->linebuf;
+            eval->pending = ipc->next;
+
+            break;
+        case CNCOM:
+            if(eval->aptr > eval->abuf) {
+                rv = arout(eval);
+                if (rv != APR_SUCCESS)
+                    return rv;
+            }
+            append_to_linebuf(eval, "\n");
+            eval->pending = ipc->next;
+            break;
+
+        case PCOM:
+            rv = wline(eval, eval->linebuf, eval->lspend - eval->linebuf);
+            break;
+        case CPCOM:
+            for (p1 = eval->linebuf; *p1 != '\n' && *p1 != '\0'; p1++);
+            rv = wline(eval, eval->linebuf, p1 - eval->linebuf);
+            break;
+
+        case QCOM:
+            if (!eval->commands->nflag) {
+                rv = wline(eval, eval->linebuf, eval->lspend - eval->linebuf);
+                if (rv != APR_SUCCESS)
+                    break;
+            }
+
+            if(eval->aptr > eval->abuf) {
+                rv = arout(eval);
+                if (rv != APR_SUCCESS)
+                    return rv;
+            }
+
+            eval->quitflag = 1;
+            break;
+        case RCOM:
+            if(eval->aptr >= &eval->abuf[SED_ABUFSIZE]) {
+                eval_errf(eval, SEDERR_TMRMES, eval->lnum);
+            } else {
+                *eval->aptr++ = ipc;
+                *eval->aptr = NULL;
+            }
+            break;
+
+        case SCOM:
+            i = substitute(eval, ipc, step_vars);
+            if (i == -1) {
+                return APR_EGENERAL;
+            }
+            if(ipc->pfl && eval->commands->nflag && i) {
+                if(ipc->pfl == 1) {
+                    rv = wline(eval, eval->linebuf, eval->lspend -
+                               eval->linebuf);
+                    if (rv != APR_SUCCESS)
+                        return rv;
+                } else {
+                    for (p1 = eval->linebuf; *p1 != '\n' && *p1 != '\0'; p1++);
+                    rv = wline(eval, eval->linebuf, p1 - eval->linebuf);
+                    if (rv != APR_SUCCESS)
+                        return rv;
+                }
+            }
+            if (i && (ipc->findex >= 0) && eval->fcode[ipc->findex])
+                apr_file_printf(eval->fcode[ipc->findex], "%s\n",
+                                eval->linebuf);
+            break;
+
+        case TCOM:
+            if(eval->sflag == 0)  break;
+            eval->sflag = 0;
+            eval->jflag = 1;
+            break;
+
+        case WCOM:
+            if (ipc->findex >= 0)
+                apr_file_printf(eval->fcode[ipc->findex], "%s\n",
+                                eval->linebuf);
+            break;
+        case XCOM:
+            copy_to_genbuf(eval, eval->linebuf);
+            copy_to_linebuf(eval, eval->holdbuf);
+            copy_to_holdbuf(eval, eval->genbuf);
+            break;
+
+        case YCOM: 
+            p1 = eval->linebuf;
+            p2 = ipc->re1;
+            while((*p1 = p2[(unsigned char)*p1]) != 0)    p1++;
+            break;
+    }
+    return rv;
+}
+
+/*
+ * arout
+ */
+static apr_status_t arout(sed_eval_t *eval)
+{
+    apr_status_t rv = APR_SUCCESS;
+    eval->aptr = eval->abuf - 1;
+    while (*++eval->aptr) {
+        if ((*eval->aptr)->command == ACOM) {
+            char *p1;
+
+            for (p1 = (*eval->aptr)->re1; *p1; p1++);
+            rv = wline(eval, (*eval->aptr)->re1, p1 - (*eval->aptr)->re1);
+            if (rv != APR_SUCCESS)
+                return rv;
+        } else {
+            apr_file_t *fi = NULL;
+            char buf[512];
+            apr_size_t n = sizeof(buf);
+
+            if (apr_file_open(&fi, (*eval->aptr)->re1, APR_READ, 0, eval->pool)
+                              != APR_SUCCESS)
+                continue;
+            while ((apr_file_read(fi, buf, &n)) == APR_SUCCESS) {
+                if (n == 0)
+                    break;
+                rv = eval->writefn(eval->fout, buf, n);
+                if (rv != APR_SUCCESS) {
+                    apr_file_close(fi);
+                    return rv;
+                }
+                n = sizeof(buf);
+            }
+            apr_file_close(fi);
+        }
+    }
+    eval->aptr = eval->abuf;
+    *eval->aptr = NULL;
+    return rv;
+}
+
+/*
+ * wline
+ */
+static apr_status_t wline(sed_eval_t *eval, char *buf, int sz)
+{
+    apr_status_t rv = APR_SUCCESS;
+    rv = eval->writefn(eval->fout, buf, sz);
+    if (rv != APR_SUCCESS)
+        return rv;
+    rv = eval->writefn(eval->fout, "\n", 1);
+    return rv;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/patches/Makefile.in.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,33 @@
+--- Makefile.in	Tue Nov 25 12:24:49 2008
++++ Makefile.in	Thu May 19 08:09:10 2011
+@@ -49,6 +49,9 @@
+ 	    				-e 's#@@Port@@#$(PORT)#g' \
+ 	    				-e 's#@@SSLPort@@#$(SSLPORT)#g' \
+ 	    				-e '/@@LoadModule@@/d' \
++	    				-e 's#@@SysconfDir@@#$(sysconfdir)#g' \
++	    				-e 's#@@RuntimeDir@@#$(runtimedir)#g' \
++	    				-e 's#@@DataDir@@#$(datadir)#g' \
+ 	    				< $$i; \
+ 	    		else \
+ 	    			sed -n -e '/@@LoadModule@@/q' \
+@@ -87,6 +90,12 @@
+ 	        cp -p envvars-std $(DESTDIR)$(sbindir)/envvars ; \
+ 	    fi ; \
+ 	fi
++	@if ! grep "$(sysconfdir)/envvars" $(DESTDIR)$(sbindir)/envvars > /dev/null; then \
++	    echo 'if [ -f $(sysconfdir)/envvars ]; then' >> $(DESTDIR)$(sbindir)/envvars ; \
++	    echo '. $(sysconfdir)/envvars' >> $(DESTDIR)$(sbindir)/envvars ; \
++	    echo 'fi' >> $(DESTDIR)$(sbindir)/envvars ; \
++	fi
++	@grep "^#" $(top_builddir)/support/envvars-std > $(DESTDIR)$(sysconfdir)/envvars
+ 
+ # Create a sanitized config_vars.mk
+ build/config_vars.out: build/config_vars.mk
+@@ -165,7 +174,6 @@
+ 
+ install-other:
+ 	@test -d $(DESTDIR)$(logfiledir) || $(MKINSTALLDIRS) $(DESTDIR)$(logfiledir)
+-	@test -d $(DESTDIR)$(runtimedir) || $(MKINSTALLDIRS) $(DESTDIR)$(runtimedir)
+ 	@for ext in dll x; do \
+ 		file=apachecore.$$ext; \
+ 		if test -f $$file; then \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/patches/apachectl.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,15 @@
+--- support/apachectl.in.orig	Tue Jul 11 20:38:44 2006
++++ support/apachectl.in	Tue Feb 12 02:24:17 2008
+@@ -75,6 +75,12 @@
+     ARGV="-h"
+ fi
+ 
++if [ ! -d "@exp_runtimedir@" ]; then
++    mkdir -p @exp_runtimedir@
++    chown -R webservd @exp_runtimedir@
++    chgrp -R webservd @exp_runtimedir@
++fi
++
+ case $ARGV in
+ start|stop|restart|graceful|graceful-stop)
+     $HTTPD -k $ARGV
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/patches/apr_common.m4.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,12 @@
+=== This is added to fix the MKDEP value for Sun Studio compiler
+--- build/apr_common.m4.orig	Sat Dec  6 07:17:56 2008
++++ build/apr_common.m4	Mon Jan  5 02:28:50 2009
+@@ -948,7 +948,7 @@
+   int main() { return 0; }
+ EOF
+   MKDEP="true"
+-  for i in "$CC -MM" "$CC -M" "$CPP -MM" "$CPP -M" "cpp -M"; do
++  for i in "$CC -MM" "$CC -M" "$CC -xM" "$CPP -MM" "$CPP -M" "$CPP -xM" "cpp -M"; do
+     AC_MSG_CHECKING([if $i can create proper make dependencies])
+     if $i conftest.c 2>/dev/null | grep 'conftest.o: conftest.c' >/dev/null; then
+       MKDEP=$i
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/patches/config.layout.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,76 @@
+--- config.layout.orig	Thu Apr 28 06:36:28 2011
++++ config.layout	Thu Apr 28 06:41:37 2011
+@@ -322,3 +322,73 @@
+     installbuilddir: ${prefix}/etc/apache2/build
+     errordir:      ${datadir}/error
+ </Layout>
++
++# Solaris Layout for Apache 2
++<Layout Solaris-Apache2>
++    prefix:        /usr/apache2/2.2
++    exec_prefix:   ${prefix}
++    bindir:        ${exec_prefix}/bin
++    sbindir:       ${exec_prefix}/bin
++    libdir:        ${exec_prefix}/lib
++    libexecdir:    ${exec_prefix}/libexec
++    mandir:        ${exec_prefix}/man
++    sysconfdir:    /etc/apache2/2.2
++    datadir:       /var/apache2/2.2
++    installbuilddir: ${prefix}/build
++    errordir:      ${datadir}/error
++    iconsdir:      ${datadir}/icons
++    htdocsdir:     ${datadir}/htdocs
++    manualdir:     ${prefix}/manual
++    cgidir:        ${datadir}/cgi-bin
++    includedir:    ${exec_prefix}/include
++    localstatedir: ${prefix}
++    runtimedir:    /var/run/apache2/2.2
++    logfiledir:    ${datadir}/logs
++    proxycachedir: ${datadir}/proxy
++</Layout>
++
++<Layout Solaris-Apache2-amd64>
++    prefix:        /usr/apache2/2.2
++    exec_prefix:   ${prefix}
++    bindir:        ${exec_prefix}/bin/amd64
++    sbindir:       ${exec_prefix}/bin/amd64
++    libdir:        ${exec_prefix}/lib/amd64
++    libexecdir:    ${exec_prefix}/libexec/amd64
++    mandir:        ${exec_prefix}/man
++    sysconfdir:    /etc/apache2/2.2
++    datadir:       /var/apache2/2.2
++    installbuilddir: ${prefix}/build/amd64
++    errordir:      ${datadir}/error
++    iconsdir:      ${datadir}/icons
++    htdocsdir:     ${datadir}/htdocs
++    manualdir:     ${prefix}/manual
++    cgidir:        ${datadir}/cgi-bin
++    includedir:    ${exec_prefix}/include
++    localstatedir: ${prefix}
++    runtimedir:    /var/run/apache2/2.2
++    logfiledir:    ${datadir}/logs
++    proxycachedir: ${datadir}/proxy
++</Layout>
++
++<Layout Solaris-Apache2-sparcv9>
++    prefix:        /usr/apache2/2.2
++    exec_prefix:   ${prefix}
++    bindir:        ${exec_prefix}/bin/sparcv9
++    sbindir:       ${exec_prefix}/bin/sparcv9
++    libdir:        ${exec_prefix}/lib/sparcv9
++    libexecdir:    ${exec_prefix}/libexec/sparcv9
++    mandir:        ${exec_prefix}/man
++    sysconfdir:    /etc/apache2/2.2
++    datadir:       /var/apache2/2.2
++    installbuilddir: ${prefix}/build/sparcv9
++    errordir:      ${datadir}/error
++    iconsdir:      ${datadir}/icons
++    htdocsdir:     ${datadir}/htdocs
++    manualdir:     ${prefix}/manual
++    cgidir:        ${datadir}/cgi-bin
++    includedir:    ${exec_prefix}/include
++    localstatedir: ${prefix}
++    runtimedir:    /var/run/apache2/2.2
++    logfiledir:    ${datadir}/logs
++    proxycachedir: ${datadir}/proxy
++</Layout>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/patches/dav.conf.in.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,28 @@
+--- docs/conf/extra/httpd-dav.conf.in.orig	Fri Nov 28 13:53:24 2008
++++ docs/conf/extra/httpd-dav.conf.in	Fri Nov 28 14:02:50 2008
+@@ -12,11 +12,11 @@
+ # on the directory where the DavLockDB is placed and on any directory where
+ # "Dav On" is specified.
+ 
+-DavLockDB "@@ServerRoot@@/var/DavLock"
++DavLockDB "@@RuntimeDir@@/DavLock"
+ 
+-Alias /uploads "@@ServerRoot@@/uploads"
++Alias /uploads "@@DataDir@@/uploads"
+ 
+-<Directory "@@ServerRoot@@/uploads">
++<Directory "@@DataDir@@/uploads">
+     Dav On
+ 
+     Order Allow,Deny
+@@ -26,8 +26,8 @@
+     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"
++    #   htdigest -c "@@SysconfDir@@/user.passwd" DAV-upload admin
++    AuthUserFile "@@SysconfDir@@/user.passwd"
+     AuthDigestProvider file
+ 
+     # Allow universal read-access, but writes are restricted
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/patches/extra-modules.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,24 @@
+--- modules/filters/config.m4.orig	Mon May  9 09:31:02 2011
++++ modules/filters/config.m4	Mon May  9 09:32:22 2011
+@@ -10,6 +10,9 @@
+ APACHE_MODULE(filter, Smart Filtering, , , yes)
+ APACHE_MODULE(substitute, response content rewrite-like filtering, , , most)
+ 
++sed_obj="mod_sed.lo sed0.lo sed1.lo regexp.lo"
++APACHE_MODULE(sed, filter request and/or response bodies through sed, $sed_obj)
++
+ if test "$ac_cv_ebcdic" = "yes"; then
+ # mod_charset_lite can be very useful on an ebcdic system,
+ #   so include it by default
+--- modules/aaa/config.m4.orig	Mon May  9 13:55:46 2011
++++ modules/aaa/config.m4	Mon May  9 14:07:47 2011
+@@ -54,5 +54,9 @@
+     enable_auth_digest="no"
+   fi
+ ])
++APACHE_MODULE(auth_gss, GSS based authentication, , , yes, [
++  MOD_AUTH_GSS_LDADD="-lgss"
++  AC_SUBST(MOD_AUTH_GSS_LDADD)
++])
+ 
+ APACHE_MODPATH_FINISH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/patches/httpd.conf.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,138 @@
+--- docs/conf/httpd.conf.in	Fri Dec 21 03:43:00 2007
++++ docs/conf/httpd.conf.in	Mon May 16 06:47:52 2011
+@@ -6,6 +6,12 @@
+ # <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
+ # for a discussion of each configuration directive.
+ #
++# Solaris Quick Configuration Information
++#
++# 1. Set ServerName if necessary (default is 127.0.0.1)
++# 2. Set ServerAdmin to a valid email address
++#
++#
+ # 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.  
+@@ -43,14 +49,17 @@
+ # Dynamic Shared Object (DSO) Support
+ #
+ # To be able to use the functionality of a module which was built as a DSO you
+-# have to place corresponding `LoadModule' lines at this location so the
+-# directives contained in it are actually available _before_ they are used.
+-# Statically compiled modules (those listed by `httpd -l') do not need
+-# to be loaded here.
++# have to place corresponding `LoadModule' lines within the appropriate 
++# (32-bit or 64-bit module) @rel_sysconfdir@/conf.d/modules-*.load file so that
++# the directives contained in it are actually available _before_ they are used.
+ #
+-# Example:
+-# LoadModule foo_module modules/mod_foo.so
+-#
++<IfDefine 64bit>
++Include @rel_sysconfdir@/conf.d/modules-64.load
++</IfDefine>
++<IfDefine !64bit>
++Include @rel_sysconfdir@/conf.d/modules-32.load
++</IfDefine>
++
+ @@LoadModule@@
+ 
+ <IfModule !mpm_netware_module>
+@@ -63,8 +72,8 @@
+ # It is usually good practice to create a dedicated user and group for
+ # running httpd, as with most system services.
+ #
+-User daemon
+-Group daemon
++User webservd
++Group webservd
+ 
+ </IfModule>
+ </IfModule>
+@@ -86,7 +95,7 @@
+ # e-mailed.  This address appears on some server-generated pages, such
+ # as error documents.  e.g. [email protected]
+ #
+-ServerAdmin [email protected]
++ServerAdmin [email protected]
+ 
+ #
+ # ServerName gives the name and port that the server uses to identify itself.
+@@ -95,7 +104,7 @@
+ #
+ # If your host doesn't have a registered DNS name, enter its IP address here.
+ #
+-#ServerName www.example.com:@@Port@@
++ServerName 127.0.0.1
+ 
+ #
+ # DocumentRoot: The directory out of which you will serve your
+@@ -329,6 +338,10 @@
+     #
+     #AddType text/html .shtml
+     #AddOutputFilter INCLUDES .shtml
++
++    # Add a new mime.type for .p5i file extension so that clicking on 
++    # this file type on a web page launches PackageManager in a Webinstall mode.
++    AddType application/vnd.pkg5.info .p5i
+ </IfModule>
+ 
+ #
+@@ -362,43 +375,22 @@
+ 
+ # Supplemental configuration
+ #
+-# The configuration files in the @rel_sysconfdir@/extra/ directory can be 
+-# included to add extra features or to modify the default configuration of 
+-# the server, or you may simply copy their contents here and change as 
++# Include all the .conf configuration files in the 
++# @rel_sysconfdir@/conf.d/ directory.
++#
++# You can place additional configuration files in the
++# @rel_sysconfdir@/conf.d/ directory to add extra features
++# or to modify the default configuration of the server,
++# or you may simply copy their contents here and change as 
+ # necessary.
++#
++# Sample configuration files are in the
++# @rel_sysconfdir@/samples-conf.d directory. To use a 
++# sample .conf file, copy it to  @rel_sysconfdir@/conf.d 
++# directory and modify as required.
++#
++Include @rel_sysconfdir@/conf.d/*.conf
+ 
+-# Server-pool management (MPM specific)
+-#Include @rel_sysconfdir@/extra/httpd-mpm.conf
+-
+-# Multi-language error messages
+-#Include @rel_sysconfdir@/extra/httpd-multilang-errordoc.conf
+-
+-# Fancy directory listings
+-#Include @rel_sysconfdir@/extra/httpd-autoindex.conf
+-
+-# Language settings
+-#Include @rel_sysconfdir@/extra/httpd-languages.conf
+-
+-# User home directories
+-#Include @rel_sysconfdir@/extra/httpd-userdir.conf
+-
+-# Real-time info on requests and configuration
+-#Include @rel_sysconfdir@/extra/httpd-info.conf
+-
+-# Virtual hosts
+-#Include @rel_sysconfdir@/extra/httpd-vhosts.conf
+-
+-# Local access to the Apache HTTP Server Manual
+-#Include @rel_sysconfdir@/extra/httpd-manual.conf
+-
+-# Distributed authoring and versioning (WebDAV)
+-#Include @rel_sysconfdir@/extra/httpd-dav.conf
+-
+-# Various default settings
+-#Include @rel_sysconfdir@/extra/httpd-default.conf
+-
+-# Secure (SSL/TLS) connections
+-#Include @rel_sysconfdir@/extra/httpd-ssl.conf
+ #
+ # Note: The following must must be present to support
+ #       starting without SSL on platforms with no /dev/random equivalent
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/patches/info.conf.in.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,42 @@
+--- docs/conf/extra/httpd-info.conf.in.orig	Fri Nov 28 13:44:23 2008
++++ docs/conf/extra/httpd-info.conf.in	Fri Nov 28 13:47:18 2008
+@@ -10,11 +10,15 @@
+ # with the URL of http://servername/server-status
+ # Change the ".example.com" to match your domain to enable.
+ 
++<IfModule mod_status.c>
+ <Location /server-status>
+     SetHandler server-status
+     Order deny,allow
+     Deny from all
+-    Allow from .example.com
++    #Allow from .example.com
++
++    # Allow access from localhost
++    Allow from 127.0.0.1
+ </Location>
+ 
+ #
+@@ -24,14 +28,21 @@
+ #
+ #ExtendedStatus On
+ 
++</IfModule>
++
+ #
+ # 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.
+ #
++<IfModule mod_info.c>
+ <Location /server-info>
+     SetHandler server-info
+     Order deny,allow
+     Deny from all
+-    Allow from .example.com
++    #Allow from .example.com
++
++    # Allow access from localhost
++    Allow from 127.0.0.1
+ </Location>
++</IfModule>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/apache2/patches/ssl.conf.patch	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,38 @@
+--- docs/conf/extra/httpd-ssl.conf.in.orig	Thu May 12 11:44:53 2011
++++ docs/conf/extra/httpd-ssl.conf.in	Thu May 12 11:46:45 2011
+@@ -22,9 +22,10 @@
+ # Manual for more details.
+ #
+ #SSLRandomSeed startup file:/dev/random  512
+-#SSLRandomSeed startup file:/dev/urandom 512
++SSLRandomSeed startup file:/dev/urandom 512
+ #SSLRandomSeed connect file:/dev/random  512
+-#SSLRandomSeed connect file:/dev/urandom 512
++SSLRandomSeed connect file:/dev/urandom 512
++SSLCryptoDevice pkcs11
+ 
+ 
+ #
+@@ -75,7 +76,7 @@
+ 
+ #   General setup for the virtual host
+ DocumentRoot "@exp_htdocsdir@"
+-ServerName www.example.com:@@SSLPort@@
++ServerName 127.0.0.1:@@SSLPort@@
+ ServerAdmin [email protected]
+ ErrorLog "@exp_logfiledir@/error_log"
+ TransferLog "@exp_logfiledir@/access_log"
+@@ -87,8 +88,12 @@
+ #   SSL Cipher Suite:
+ #   List the ciphers that the client is permitted to negotiate.
+ #   See the mod_ssl documentation for a complete list.
+-SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
++#   AES with keylengths > 128 bit is not supported by default on Solaris.
++#   To operate with AES256 you must install the SUNWcry and SUNWcryr
++#   packages from the Solaris 10 Data Encryption Kit.
++SSLCipherSuite ALL:!ADH:!EXPORT56:-AES256-SHA:-DHE-RSA-AES256-SHA:-DHE-DSS-AES256-SHA:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+ 
++
+ #   Server Certificate:
+ #   Point SSLCertificateFile at a PEM encoded certificate.  If
+ #   the certificate is encrypted, then you will be prompted for a
--- a/components/apr-util/Makefile	Wed Jun 01 14:24:54 2011 -0700
+++ b/components/apr-util/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -29,6 +29,8 @@
 COMPONENT_ARCHIVE_HASH=	sha1:fd2a76352353e6bc2f7cc7da80e2ab3842795199
 COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/apr/$(COMPONENT_ARCHIVE)
 
+CONFIGURE_DEFAULT_DIRS=no
+
 include ../../make-rules/prep.mk
 include ../../make-rules/configure.mk
 include ../../make-rules/ips.mk
--- a/components/apr/Makefile	Wed Jun 01 14:24:54 2011 -0700
+++ b/components/apr/Makefile	Thu Jun 02 00:54:08 2011 -0700
@@ -29,6 +29,8 @@
 COMPONENT_ARCHIVE_HASH=	sha1:3ad0099ee9fb684e118590bf0acf937639e00611
 COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/apr/$(COMPONENT_ARCHIVE)
 
+CONFIGURE_DEFAULT_DIRS=no
+
 include ../../make-rules/prep.mk
 include ../../make-rules/configure.mk
 include ../../make-rules/ips.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWapch22.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=web/server/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWapch22d.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=web/server/apache-22/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWapch22m-dtrace.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=web/server/apache-22/plugin/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWapch22m-fcgid.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=web/server/apache-22/plugin/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWapch22m-jk.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=web/server/apache-22/plugin/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWapch22m-proxy-html.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=web/server/apache-22/plugin/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWapch22m-security.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=web/server/apache-22/plugin/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWapch22m-sed.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=web/server/apache-22/plugin/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWapch22m-xml2enc.p5m	Thu Jun 02 00:54:08 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=web/server/apache-22/plugin/[email protected] type=require
--- a/make-rules/configure.mk	Wed Jun 01 14:24:54 2011 -0700
+++ b/make-rules/configure.mk	Thu Jun 02 00:54:08 2011 -0700
@@ -70,13 +70,17 @@
 
 CONFIGURE_ENV = CONFIG_SHELL="$(CONFIG_SHELL)"
 
+CONFIGURE_DEFAULT_DIRS?=yes
+
 CONFIGURE_OPTIONS += CC="$(CC)"
 CONFIGURE_OPTIONS += CXX="$(CXX)"
 CONFIGURE_OPTIONS += --prefix=$(CONFIGURE_PREFIX)
+ifeq ($(CONFIGURE_DEFAULT_DIRS),yes)
 CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR)
 CONFIGURE_OPTIONS += --bindir=$(CONFIGURE_BINDIR.$(BITS))
 CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS))
 CONFIGURE_OPTIONS += --sbindir=$(CONFIGURE_SBINDIR.$(BITS))
+endif
 CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(BITS))
 
 COMPONENT_INSTALL_ARGS +=	DESTDIR=$(PROTO_DIR)
--- a/make-rules/justmake.mk	Wed Jun 01 14:24:54 2011 -0700
+++ b/make-rules/justmake.mk	Thu Jun 02 00:54:08 2011 -0700
@@ -44,6 +44,8 @@
 #	COMPONENT_BUILD_TARGETS, COMPONENT_INSTALL_TARGETS
 #
 
+COMPONENT_INSTALL_ARGS += DESTDIR=$(PROTO_DIR)
+
 # build the configured source
 $(BUILD_DIR)/%/.built:	$(SOURCE_DIR)/.prep
 	$(RM) -r $(@D) ; $(MKDIR) $(@D)