7045614 Move Apache Web server to userland
6844584 mod_perl packaging improvements
--- /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 "[email protected] 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 "[email protected] 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 "[email protected] 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>
+<Directory /var/apache/htdocs/krb5>
+ AuthType GSSAPI
+ ServiceName HTTP
+ KeytabFile /var/apache/http.keytab
+ GssDebug 0
+ Require valid-user
+ AllowOverride All
+</Directory>
+</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(c