You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2014/04/28 12:55:22 UTC
svn commit: r1590597 [10/14] - in /httpd/httpd/trunk/modules/spdy: ./
apache/ apache/filters/ apache/testing/ common/ common/testing/ support/
support/base/ support/base/metrics/ support/build/ support/install/
support/install/common/ support/install/d...
Added: httpd/httpd/trunk/modules/spdy/mod_spdy.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/mod_spdy.h?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/mod_spdy.h (added)
+++ httpd/httpd/trunk/modules/spdy/mod_spdy.h Mon Apr 28 10:55:17 2014
@@ -0,0 +1,47 @@
+/* Copyright 2011 Google Inc.
+ *
+ * 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.
+ */
+
+/* This is a public header file, to be used by other Apache modules. So,
+ * identifiers declared here should follow Apache module naming conventions
+ * (specifically, identifiers should be lowercase_with_underscores, and our
+ * identifiers should start with the spdy_ prefix), and this header file must
+ * be valid in old-school C (not just C++). */
+
+#ifndef MOD_SPDY_MOD_SPDY_H_
+#define MOD_SPDY_MOD_SPDY_H_
+
+#include "httpd.h"
+#include "apr_optional.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** An optional function which returns zero if the given connection is _not_
+ * using SPDY, and otherwise returns the (non-zero) SPDY protocol version
+ * number being used on the connection. This can be used e.g. to alter the
+ * response for a given request to optimize for SPDY if SPDY is being used. */
+APR_DECLARE_OPTIONAL_FN(int, spdy_get_version, (conn_rec*));
+
+/* TODO(mdsteele): Add an optional function for doing a SPDY server push. */
+
+/* TODO(mdsteele): Consider adding an optional function to tell mod_spdy NOT to
+ * use SPDY for a connection (similar to ssl_engine_disable in mod_ssl). */
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* MOD_SPDY_MOD_SPDY_H_ */
Propchange: httpd/httpd/trunk/modules/spdy/mod_spdy.h
------------------------------------------------------------------------------
svn:eol-style = native
Added: httpd/httpd/trunk/modules/spdy/support/DEPS
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/DEPS?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/DEPS (added)
+++ httpd/httpd/trunk/modules/spdy/support/DEPS Mon Apr 28 10:55:17 2014
@@ -0,0 +1,142 @@
+# Copyright 2010 Google Inc.
+#
+# 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.
+
+vars = {
+ "chromium_trunk": "http://src.chromium.org/svn/trunk",
+ "chromium_revision": "@228939",
+ "chromium_deps_root": "src/third_party/chromium_deps",
+ "apr_src": "http://svn.apache.org/repos/asf/apr/apr/tags/1.4.2",
+ "apr_revision": "@head",
+ "aprutil_src": "http://svn.apache.org/repos/asf/apr/apr-util/tags/1.3.9",
+ "aprutil_revision": "@head",
+ "apache_httpd_src": "http://svn.apache.org/repos/asf/httpd/httpd/tags/2.2.15",
+ "apache_httpd_revision": "@head",
+ "mod_pagespeed_root": "http://modpagespeed.googlecode.com/svn/tags/0.10.19.5",
+ "mod_pagespeed_revision": "@head",
+}
+
+deps = {
+ # Fetch chromium DEPS so we can sync our other dependencies relative
+ # to it.
+ Var("chromium_deps_root"):
+ File(Var("chromium_trunk") + "/src/DEPS" + Var("chromium_revision")),
+
+ "src/net/instaweb/util":
+ Var("mod_pagespeed_root") + "/src/net/instaweb/util" +
+ Var("mod_pagespeed_revision"),
+
+ "src/testing":
+ Var("chromium_trunk") + "/src/testing" + Var("chromium_revision"),
+
+ "src/third_party/chromium/src/build":
+ Var("chromium_trunk") + "/src/build" + Var("chromium_revision"),
+
+ "src/third_party/chromium/src/base":
+ Var("chromium_trunk") + "/src/base" + Var("chromium_revision"),
+
+ "src/third_party/chromium/src/chrome/tools/build":
+ Var("chromium_trunk") + "/src/chrome/tools/build" +
+ Var("chromium_revision"),
+
+ "src/third_party/chromium/src/net/base":
+ Var("chromium_trunk") + "/src/net/base" + Var("chromium_revision"),
+
+ "src/third_party/chromium/src/net/socket":
+ Var("chromium_trunk") + "/src/net/socket" + Var("chromium_revision"),
+
+ "src/third_party/chromium/src/net/spdy":
+ Var("chromium_trunk") + "/src/net/spdy" + Var("chromium_revision"),
+
+ "src/third_party/chromium/src/net/tools/flip_server":
+ Var("chromium_trunk") + "/src/net/tools/flip_server" +
+ Var("chromium_revision"),
+
+ "src/build/linux":
+ Var("chromium_trunk") + "/src/build/linux" + Var("chromium_revision"),
+ "src/build/mac":
+ Var("chromium_trunk") + "/src/build/mac" + Var("chromium_revision"),
+ "src/build/win":
+ Var("chromium_trunk") + "/src/build/win" + Var("chromium_revision"),
+ "src/build/internal":
+ Var("chromium_trunk") + "/src/build/internal" + Var("chromium_revision"),
+
+ # lastchange.py changed its behavior at some point in a way that it
+ # stopped working for us. Thus we continue to sync just that file at
+ # a known good revision. We do not sync all of src/build/util so as
+ # to make sure that we don't accidentally depend on something else
+ # at that old revision.
+ "src/build/util":
+ File(Var("chromium_trunk") + "/src/build/util/lastchange.py" + "@90205"),
+
+ "src/third_party/apache/apr/src":
+ Var("apr_src") + Var("apr_revision"),
+
+ "src/third_party/apache/aprutil/src":
+ Var("aprutil_src") + Var("aprutil_revision"),
+
+ "src/third_party/apache/httpd/src/include":
+ Var("apache_httpd_src") + "/include" + Var("apache_httpd_revision"),
+
+ "src/third_party/apache/httpd/src/os":
+ Var("apache_httpd_src") + "/os" + Var("apache_httpd_revision"),
+
+ "src/third_party/modp_b64":
+ Var("chromium_trunk") + "/src/third_party/modp_b64" +
+ Var("chromium_revision"),
+
+ "src/third_party/protobuf":
+ (Var("chromium_trunk") + "/src/third_party/protobuf" +
+ Var("chromium_revision")),
+
+ "src/third_party/zlib":
+ Var("chromium_trunk") + "/src/third_party/zlib" + Var("chromium_revision"),
+
+ "src/testing/gmock": From(Var("chromium_deps_root")),
+ "src/testing/gtest": From(Var("chromium_deps_root")),
+ "src/tools/gyp": From(Var("chromium_deps_root")),
+}
+
+
+deps_os = {
+ "win": {
+ "src/third_party/cygwin": From(Var("chromium_deps_root")),
+ "src/third_party/python_26": From(Var("chromium_deps_root")),
+ },
+ "mac": {
+ },
+ "unix": {
+ },
+}
+
+
+include_rules = [
+ # Everybody can use some things.
+ "+base",
+ "+build",
+]
+
+
+# checkdeps.py shouldn't check include paths for files in these dirs:
+skip_child_includes = [
+ "testing",
+]
+
+
+hooks = [
+ {
+ # A change to a .gyp, .gypi, or to GYP itself should run the generator.
+ "pattern": ".",
+ "action": ["python", "src/build/gyp_chromium"],
+ },
+]
Added: httpd/httpd/trunk/modules/spdy/support/base/base.gyp
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/base/base.gyp?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/base/base.gyp (added)
+++ httpd/httpd/trunk/modules/spdy/support/base/base.gyp Mon Apr 28 10:55:17 2014
@@ -0,0 +1,135 @@
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Base was branched from the chromium version to reduce the number of
+# dependencies of this package. Specifically, we would like to avoid
+# depending on the chrome directory, which contains the chrome version
+# and branding information.
+# TODO: push this refactoring to chronium trunk.
+
+{
+ 'variables': {
+ 'chromium_code': 1,
+ 'chromium_root': '<(DEPTH)/third_party/chromium/src',
+ },
+ 'targets': [
+ {
+ 'target_name': 'base',
+ 'type': '<(component)',
+ 'dependencies': [
+ '<(DEPTH)/third_party/modp_b64/modp_b64.gyp:modp_b64',
+ '<(chromium_root)/base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
+ ],
+ 'sources': [
+ '<(chromium_root)/base/at_exit.cc',
+ '<(chromium_root)/base/atomicops_internals_x86_gcc.cc',
+ '<(chromium_root)/base/base_switches.cc',
+ '<(chromium_root)/base/callback_internal.cc',
+ '<(chromium_root)/base/command_line.cc',
+ '<(chromium_root)/base/debug/alias.cc',
+ '<(chromium_root)/base/debug/debugger.cc',
+ '<(chromium_root)/base/debug/debugger_posix.cc',
+ '<(chromium_root)/base/debug/debugger_win.cc',
+ '<(chromium_root)/base/debug/stack_trace.cc',
+ '<(chromium_root)/base/debug/stack_trace_posix.cc',
+ '<(chromium_root)/base/debug/stack_trace_win.cc',
+ '<(chromium_root)/base/files/file_path.cc',
+ '<(chromium_root)/base/files/file_path_constants.cc',
+ '<(chromium_root)/base/lazy_instance.cc',
+ '<(chromium_root)/base/location.cc',
+ '<(chromium_root)/base/logging.cc',
+ '<(chromium_root)/base/logging_win.cc',
+ '<(chromium_root)/base/mac/foundation_util.mm',
+ '<(chromium_root)/base/memory/ref_counted.cc',
+ '<(chromium_root)/base/memory/singleton.cc',
+ '<(chromium_root)/base/metrics/stats_counters.cc',
+ 'metrics/stats_table.cc',
+ '<(chromium_root)/base/pickle.cc',
+ '<(chromium_root)/base/process/process_handle_linux.cc',
+ '<(chromium_root)/base/process/process_handle_mac.cc',
+ '<(chromium_root)/base/process/process_handle_posix.cc',
+ '<(chromium_root)/base/process/process_handle_win.cc',
+ '<(chromium_root)/base/profiler/alternate_timer.cc',
+ '<(chromium_root)/base/profiler/tracked_time.cc',
+ '<(chromium_root)/base/safe_strerror_posix.cc',
+ '<(chromium_root)/base/strings/string16.cc',
+ '<(chromium_root)/base/strings/string16.h',
+ '<(chromium_root)/base/strings/string_number_conversions.cc',
+ '<(chromium_root)/base/strings/string_piece.cc',
+ '<(chromium_root)/base/strings/string_split.cc',
+ '<(chromium_root)/base/strings/string_util.cc',
+ '<(chromium_root)/base/strings/string_util_constants.cc',
+ '<(chromium_root)/base/strings/stringprintf.cc',
+ '<(chromium_root)/base/strings/sys_string_conversions_posix.cc',
+ '<(chromium_root)/base/strings/sys_string_conversions_mac.mm',
+ '<(chromium_root)/base/strings/sys_string_conversions_win.cc',
+ '<(chromium_root)/base/strings/utf_string_conversion_utils.cc',
+ '<(chromium_root)/base/strings/utf_string_conversions.cc',
+ '<(chromium_root)/base/synchronization/condition_variable_posix.cc',
+ '<(chromium_root)/base/synchronization/condition_variable_win.cc',
+ '<(chromium_root)/base/synchronization/lock.cc',
+ '<(chromium_root)/base/synchronization/lock_impl_posix.cc',
+ '<(chromium_root)/base/synchronization/lock_impl_win.cc',
+ '<(chromium_root)/base/synchronization/waitable_event_posix.cc',
+ '<(chromium_root)/base/synchronization/waitable_event_win.cc',
+ '<(chromium_root)/base/third_party/dmg_fp/g_fmt.cc',
+ '<(chromium_root)/base/third_party/dmg_fp/dtoa_wrapper.cc',
+ '<(chromium_root)/base/third_party/icu/icu_utf.cc',
+ '<(chromium_root)/base/third_party/nspr/prtime.cc',
+ '<(chromium_root)/base/threading/platform_thread_mac.mm',
+ '<(chromium_root)/base/threading/platform_thread_linux.cc',
+ '<(chromium_root)/base/threading/platform_thread_posix.cc',
+ '<(chromium_root)/base/threading/platform_thread_win.cc',
+ '<(chromium_root)/base/threading/thread_collision_warner.cc',
+ '<(chromium_root)/base/threading/thread_id_name_manager.cc',
+ '<(chromium_root)/base/threading/thread_local_posix.cc',
+ '<(chromium_root)/base/threading/thread_local_win.cc',
+ '<(chromium_root)/base/threading/thread_local_storage_posix.cc',
+ '<(chromium_root)/base/threading/thread_local_storage_win.cc',
+ '<(chromium_root)/base/threading/thread_restrictions.cc',
+ '<(chromium_root)/base/time/time.cc',
+ '<(chromium_root)/base/time/time_mac.cc',
+ '<(chromium_root)/base/time/time_posix.cc',
+ '<(chromium_root)/base/time/time_win.cc',
+ '<(chromium_root)/base/tracked_objects.cc',
+ '<(chromium_root)/base/vlog.cc',
+ '<(chromium_root)/base/win/registry.cc',
+ '<(chromium_root)/base/win/win_util.cc',
+ '<(chromium_root)/base/win/windows_version.cc',
+ ],
+ 'include_dirs': [
+ '<(chromium_root)',
+ '<(DEPTH)',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(chromium_root)',
+ '<(DEPTH)',
+ ],
+ },
+ 'conditions': [
+ ['OS != "win"', {
+ 'sources/': [ ['exclude', '^win/'] ],
+ }],
+ [ 'OS == "win"', {
+ 'sources!': [
+ '<(chromium_root)/base/string16.cc',
+ ],
+ }],
+ ['OS == "linux"', {
+ 'cflags': [
+ '-Wno-write-strings',
+ '-Wno-error',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ # We need rt for clock_gettime().
+ '-lrt',
+ ],
+ },
+ }],
+ ],
+ },
+ ],
+}
Added: httpd/httpd/trunk/modules/spdy/support/base/metrics/stats_table.cc
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/base/metrics/stats_table.cc?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/base/metrics/stats_table.cc (added)
+++ httpd/httpd/trunk/modules/spdy/support/base/metrics/stats_table.cc Mon Apr 28 10:55:17 2014
@@ -0,0 +1,31 @@
+// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// A stubbed version of stats_table.cc that doesn't do anything. These
+// functions must be defined in order to link with code that updates
+// stats (such as spdy_framer.cc).
+
+#include "base/metrics/stats_table.h"
+
+namespace base {
+
+StatsTable* StatsTable::current() { return NULL; }
+
+int StatsTable::RegisterThread(const std::string& name) {
+ return 0;
+}
+
+int StatsTable::GetSlot() const {
+ return 0;
+}
+
+int StatsTable::FindCounter(const std::string& name) {
+ return 0;
+}
+
+int* StatsTable::GetLocation(int counter_id, int slot_id) const {
+ return NULL;
+}
+
+} // namespace base
Added: httpd/httpd/trunk/modules/spdy/support/build/all.gyp
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/all.gyp?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/all.gyp (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/all.gyp Mon Apr 28 10:55:17 2014
@@ -0,0 +1,28 @@
+# Copyright 2010 Google Inc.
+#
+# 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.
+
+{
+ 'targets': [
+ {
+ 'target_name': 'All',
+ 'type': 'none',
+ 'xcode_create_dependents_test_runner': 1,
+ 'dependencies': [
+ '../base/base.gyp:*',
+ '../mod_spdy/mod_spdy.gyp:*',
+ '../net/net.gyp:*',
+ '../third_party/mod_diagnostics/mod_diagnostics.gyp:*',
+ 'install.gyp:*',
+ ],} ]
+}
Added: httpd/httpd/trunk/modules/spdy/support/build/build_config.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/build_config.h?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/build_config.h (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/build_config.h Mon Apr 28 10:55:17 2014
@@ -0,0 +1 @@
+#include "third_party/chromium/src/build/build_config.h"
Propchange: httpd/httpd/trunk/modules/spdy/support/build/build_config.h
------------------------------------------------------------------------------
svn:eol-style = native
Added: httpd/httpd/trunk/modules/spdy/support/build/build_util.gyp
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/build_util.gyp?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/build_util.gyp (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/build_util.gyp Mon Apr 28 10:55:17 2014
@@ -0,0 +1,84 @@
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+{
+ 'variables': {
+ 'version_py_path': 'version.py',
+ 'mod_spdy_path': '<(DEPTH)/mod_spdy',
+ 'version_path': '<(mod_spdy_path)/common/VERSION',
+ 'version_h_in_path': '<(mod_spdy_path)/common/version.h.in',
+ 'version_h_path': '<(SHARED_INTERMEDIATE_DIR)/mod_spdy/common/version.h',
+ 'lastchange_out_path': '<(SHARED_INTERMEDIATE_DIR)/build/LASTCHANGE',
+ },
+ 'targets': [
+ {
+ 'target_name': 'lastchange',
+ 'type': 'none',
+ 'variables': {
+ 'default_lastchange_path': '../LASTCHANGE.in',
+ },
+ 'actions': [
+ {
+ 'action_name': 'lastchange',
+ 'inputs': [
+ # Note: <(default_lastchange_path) is optional,
+ # so it doesn't show up in inputs.
+ 'util/lastchange.py',
+ ],
+ 'outputs': [
+ '<(lastchange_out_path).always',
+ '<(lastchange_out_path)',
+ ],
+ 'action': [
+ 'python', '<@(_inputs)',
+ '-o', '<(lastchange_out_path)',
+ '-d', '<(default_lastchange_path)',
+ ],
+ 'message': 'Extracting last change to <(lastchange_out_path)',
+ 'process_outputs_as_sources': '1',
+ },
+ ],
+ },
+ {
+ 'target_name': 'mod_spdy_version_header',
+ 'type': 'none',
+ 'dependencies': [
+ 'lastchange',
+ ],
+ 'actions': [
+ {
+ 'action_name': 'version_header',
+ 'inputs': [
+ '<(version_path)',
+ '<(lastchange_out_path)',
+ '<(version_h_in_path)',
+ ],
+ 'outputs': [
+ '<(version_h_path)',
+ ],
+ 'action': [
+ 'python',
+ '<(version_py_path)',
+ '-f', '<(version_path)',
+ '-f', '<(lastchange_out_path)',
+ '<(version_h_in_path)',
+ '<@(_outputs)',
+ ],
+ 'message': 'Generating version header file: <@(_outputs)',
+ },
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(SHARED_INTERMEDIATE_DIR)',
+ ],
+ },
+ },
+ ]
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
Added: httpd/httpd/trunk/modules/spdy/support/build/common.gypi
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/common.gypi?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/common.gypi (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/common.gypi Mon Apr 28 10:55:17 2014
@@ -0,0 +1,49 @@
+# Copyright 2010 Google Inc.
+#
+# 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.
+#
+# mod_spdy common gyp configuration.
+{
+ 'variables': {
+ 'library%': 'static_library',
+
+ # Don't use the gold linker:
+ 'linux_use_gold_binary': 0,
+ 'linux_use_gold_flags': 0,
+
+ # Don't use the system Apache dev files by default:
+ 'use_system_apache_dev%': 0,
+
+ # Turn these off to prevent Chromium's build config from bothering us about
+ # things we don't care about for mod_spdy:
+ 'clang_use_chrome_plugins': 0,
+ 'incremental_chrome_dll': 0,
+ 'use_official_google_api_keys': 0,
+ },
+
+ # Import Chromium's common.gypi to inherit their build configuration.
+ 'includes': [
+ '../third_party/chromium/src/build/common.gypi',
+ ],
+
+ # Modify the Chromium configuration as needed:
+ 'target_defaults': {
+ # Make sure our shadow view of chromium source is available to
+ # targets that don't explicitly declare their dependencies and
+ # assume chromium source headers are available from the root
+ # (third_party/modp_b64 is one such target).
+ 'include_dirs': [
+ '<(DEPTH)/third_party/chromium/src',
+ ],
+ },
+}
Added: httpd/httpd/trunk/modules/spdy/support/build/compiler_version.py
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/compiler_version.py?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/compiler_version.py (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/compiler_version.py Mon Apr 28 10:55:17 2014
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+
+# Copyright 2010 Google Inc.
+#
+# 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.
+
+# This script is wrapper for the Chromium version of compiler_version.py.
+
+import os
+
+script_dir = os.path.dirname(__file__)
+chrome_src = os.path.normpath(os.path.join(script_dir, os.pardir, 'third_party', 'chromium', 'src'))
+
+execfile(os.path.join(chrome_src, 'build', 'compiler_version.py'))
Propchange: httpd/httpd/trunk/modules/spdy/support/build/compiler_version.py
------------------------------------------------------------------------------
svn:eol-style = native
Added: httpd/httpd/trunk/modules/spdy/support/build/dir_exists.py
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/dir_exists.py?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/dir_exists.py (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/dir_exists.py Mon Apr 28 10:55:17 2014
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+
+# Copyright 2010 Google Inc.
+#
+# 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.
+
+# This script is wrapper for the Chromium version of dir_exists.py.
+
+import os
+
+script_dir = os.path.dirname(__file__)
+chrome_src = os.path.normpath(os.path.join(script_dir, os.pardir, 'third_party', 'chromium', 'src'))
+
+execfile(os.path.join(chrome_src, 'build', 'dir_exists.py'))
Propchange: httpd/httpd/trunk/modules/spdy/support/build/dir_exists.py
------------------------------------------------------------------------------
svn:eol-style = native
Added: httpd/httpd/trunk/modules/spdy/support/build/features_override.gypi
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/features_override.gypi?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/features_override.gypi (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/features_override.gypi Mon Apr 28 10:55:17 2014
@@ -0,0 +1,18 @@
+# Copyright 2010 Google Inc.
+#
+# 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.
+
+# Chromium expects this file to be here, but for our purposes, it
+# doesn't need to actually do anything.
+
+{}
Added: httpd/httpd/trunk/modules/spdy/support/build/gyp_chromium
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/gyp_chromium?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/gyp_chromium (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/gyp_chromium Mon Apr 28 10:55:17 2014
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+
+# Copyright 2010 Google Inc.
+#
+# 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.
+
+# This script is wrapper for the Chromium version of gyp_chromium.
+
+import os
+import sys
+
+script_dir = os.path.dirname(__file__)
+chrome_src = os.path.normpath(os.path.join(script_dir, os.pardir, 'third_party', 'chromium', 'src'))
+
+# The Chromium gyp_chromium defaults to ninja on linux. We want to default to
+# make instead.
+if sys.platform.startswith('linux') and not os.environ.get('GYP_GENERATORS'):
+ os.environ['GYP_GENERATORS'] = 'make'
+
+execfile(os.path.join(chrome_src, 'build', 'gyp_chromium'))
Added: httpd/httpd/trunk/modules/spdy/support/build/gyp_helper.py
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/gyp_helper.py?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/gyp_helper.py (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/gyp_helper.py Mon Apr 28 10:55:17 2014
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+
+# Copyright 2010 Google Inc.
+#
+# 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.
+
+# This script is wrapper for the Chromium version of gyp_helper.py.
+
+import os
+
+script_dir = os.path.dirname(__file__)
+chrome_src = os.path.normpath(os.path.join(script_dir, os.pardir, 'third_party', 'chromium', 'src'))
+
+execfile(os.path.join(chrome_src, 'build', 'gyp_helper.py'))
Propchange: httpd/httpd/trunk/modules/spdy/support/build/gyp_helper.py
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/modules/spdy/support/build/gyp_helper.py
------------------------------------------------------------------------------
svn:executable = *
Added: httpd/httpd/trunk/modules/spdy/support/build/install.gyp
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/install.gyp?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/install.gyp (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/install.gyp Mon Apr 28 10:55:17 2014
@@ -0,0 +1,200 @@
+# Copyright (c) 2010 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+{
+ 'variables': {
+ 'install_path': '<(DEPTH)/install',
+ 'version_py_path': '<(DEPTH)/build/version.py',
+ 'version_path': '<(DEPTH)/mod_spdy/common/VERSION',
+ 'lastchange_path': '<(SHARED_INTERMEDIATE_DIR)/build/LASTCHANGE',
+ 'branding_path': '<(install_path)/common/BRANDING',
+ },
+ 'conditions': [
+ ['OS=="linux"', {
+ 'variables': {
+ 'version' : '<!(python <(version_py_path) -f <(version_path) -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")',
+ 'revision' : '<!(python <(DEPTH)/build/util/lastchange.py | cut -d "=" -f 2)',
+ 'packaging_files_common': [
+ '<(install_path)/common/apt.include',
+ '<(install_path)/common/mod-spdy.info',
+ '<(install_path)/common/installer.include',
+ '<(install_path)/common/repo.cron',
+ '<(install_path)/common/rpm.include',
+ '<(install_path)/common/rpmrepo.cron',
+ '<(install_path)/common/updater',
+ '<(install_path)/common/variables.include',
+ '<(install_path)/common/BRANDING',
+ '<(install_path)/common/spdy.load.template',
+ '<(install_path)/common/spdy.conf.template',
+ '<(install_path)/common/ssl.load.template',
+ ],
+ 'packaging_files_deb': [
+ '<(install_path)/debian/build.sh',
+ '<(install_path)/debian/changelog.template',
+ '<(install_path)/debian/conffiles.template',
+ '<(install_path)/debian/control.template',
+ '<(install_path)/debian/postinst',
+ '<(install_path)/debian/postrm',
+ '<(install_path)/debian/preinst',
+ '<(install_path)/debian/prerm',
+ ],
+ 'packaging_files_rpm': [
+ '<(install_path)/rpm/build.sh',
+ '<(install_path)/rpm/mod-spdy.spec.template',
+ ],
+ 'packaging_files_binaries': [
+ '<(PRODUCT_DIR)/libmod_spdy.so',
+ ],
+ 'flock_bash': ['flock', '--', '/tmp/linux_package_lock', 'bash'],
+ 'deb_build': '<(PRODUCT_DIR)/install/debian/build.sh',
+ 'rpm_build': '<(PRODUCT_DIR)/install/rpm/build.sh',
+ 'deb_cmd': ['<@(flock_bash)', '<(deb_build)', '-o' '<(PRODUCT_DIR)',
+ '-b', '<(PRODUCT_DIR)', '-a', '<(target_arch)'],
+ 'rpm_cmd': ['<@(flock_bash)', '<(rpm_build)', '-o' '<(PRODUCT_DIR)',
+ '-b', '<(PRODUCT_DIR)', '-a', '<(target_arch)'],
+ 'conditions': [
+ ['target_arch=="ia32"', {
+ 'deb_arch': 'i386',
+ 'rpm_arch': 'i386',
+ }],
+ ['target_arch=="x64"', {
+ 'deb_arch': 'amd64',
+ 'rpm_arch': 'x86_64',
+ }],
+ ],
+ },
+ 'targets': [
+ {
+ 'target_name': 'linux_installer_configs',
+ 'suppress_wildcard': 1,
+ 'type': 'none',
+ # Add these files to the build output so the build archives will be
+ # "hermetic" for packaging.
+ 'copies': [
+ {
+ 'destination': '<(PRODUCT_DIR)/install/debian/',
+ 'files': [
+ '<@(packaging_files_deb)',
+ ]
+ },
+ {
+ 'destination': '<(PRODUCT_DIR)/install/rpm/',
+ 'files': [
+ '<@(packaging_files_rpm)',
+ ]
+ },
+ {
+ 'destination': '<(PRODUCT_DIR)/install/common/',
+ 'files': [
+ '<@(packaging_files_common)',
+ ]
+ },
+ {
+ 'destination': '<(PRODUCT_DIR)/',
+ 'files': [
+ '<(DEPTH)/mod_ssl.so',
+ ]
+ },
+ ],
+ 'actions': [
+ {
+ 'action_name': 'save_build_info',
+ 'inputs': [
+ '<(branding_path)',
+ '<(version_path)',
+ '<(lastchange_path)',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/installer/version.txt',
+ ],
+ # Just output the default version info variables.
+ 'action': [
+ 'python', '<(version_py_path)',
+ '-f', '<(branding_path)',
+ '-f', '<(version_path)',
+ '-f', '<(lastchange_path)',
+ '-o', '<@(_outputs)'
+ ],
+ },
+ ],
+ },
+ {
+ 'target_name': 'linux_packages',
+ 'suppress_wildcard': 1,
+ 'type': 'none',
+ 'dependencies': [
+ 'linux_package_deb',
+ 'linux_package_rpm',
+ ],
+ },
+ {
+ 'target_name': 'linux_package_deb',
+ 'suppress_wildcard': 1,
+ 'type': 'none',
+ 'dependencies': [
+ '<(DEPTH)/mod_spdy/mod_spdy.gyp:mod_spdy',
+ 'linux_installer_configs',
+ ],
+ 'actions': [
+ {
+ 'variables': {
+ 'channel': 'beta',
+ },
+ 'action_name': 'deb_package_<(channel)',
+ 'process_outputs_as_sources': 1,
+ 'inputs': [
+ '<(deb_build)',
+ '<@(packaging_files_binaries)',
+ '<@(packaging_files_common)',
+ '<@(packaging_files_deb)',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/mod-spdy-<(channel)_<(version)-r<(revision)_<(deb_arch).deb',
+ ],
+ 'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
+ },
+ ],
+ },
+ {
+ 'target_name': 'linux_package_rpm',
+ 'suppress_wildcard': 1,
+ 'type': 'none',
+ 'dependencies': [
+ '<(DEPTH)/mod_spdy/mod_spdy.gyp:mod_spdy',
+ 'linux_installer_configs',
+ ],
+ 'actions': [
+ {
+ 'variables': {
+ 'channel': 'beta',
+ },
+ 'action_name': 'rpm_package_<(channel)',
+ 'process_outputs_as_sources': 1,
+ 'inputs': [
+ '<(rpm_build)',
+ '<(PRODUCT_DIR)/install/rpm/mod-spdy.spec.template',
+ '<@(packaging_files_binaries)',
+ '<@(packaging_files_common)',
+ '<@(packaging_files_rpm)',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/mod-spdy-<(channel)-<(version)-r<(revision).<(rpm_arch).rpm',
+ ],
+ 'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
+ },
+ ],
+ },
+ ],
+ },{
+ 'targets': [
+ ],
+ }],
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
Added: httpd/httpd/trunk/modules/spdy/support/build/output_dll_copy.rules
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/output_dll_copy.rules?rev=1590597&view=auto
==============================================================================
Binary file - no diff available.
Propchange: httpd/httpd/trunk/modules/spdy/support/build/output_dll_copy.rules
------------------------------------------------------------------------------
svn:mime-type = application/xml
Added: httpd/httpd/trunk/modules/spdy/support/build/release.gypi
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/release.gypi?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/release.gypi (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/release.gypi Mon Apr 28 10:55:17 2014
@@ -0,0 +1,19 @@
+{
+ 'conditions': [
+ # Handle build types.
+ ['buildtype=="Dev"', {
+ 'includes': ['internal/release_impl.gypi'],
+ }],
+ ['buildtype=="Official"', {
+ 'includes': ['internal/release_impl_official.gypi'],
+ }],
+ # TODO(bradnelson): may also need:
+ # checksenabled
+ # coverage
+ # dom_stats
+ # pgo_instrument
+ # pgo_optimize
+ # purify
+ ],
+}
+
Added: httpd/httpd/trunk/modules/spdy/support/build/version.py
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build/version.py?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build/version.py (added)
+++ httpd/httpd/trunk/modules/spdy/support/build/version.py Mon Apr 28 10:55:17 2014
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+
+# Copyright 2010 Google Inc.
+#
+# 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.
+
+# This script is wrapper for the Chromium version of compiler_version.py.
+
+import os
+
+script_dir = os.path.dirname(__file__)
+chrome_src = os.path.normpath(os.path.join(script_dir, os.pardir, 'third_party',
+ 'chromium', 'src'))
+
+execfile(os.path.join(chrome_src, 'chrome', 'tools', 'build', 'version.py'))
Propchange: httpd/httpd/trunk/modules/spdy/support/build/version.py
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/modules/spdy/support/build/version.py
------------------------------------------------------------------------------
svn:executable = *
Added: httpd/httpd/trunk/modules/spdy/support/build_modssl_with_npn.sh
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/build_modssl_with_npn.sh?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/build_modssl_with_npn.sh (added)
+++ httpd/httpd/trunk/modules/spdy/support/build_modssl_with_npn.sh Mon Apr 28 10:55:17 2014
@@ -0,0 +1,240 @@
+#!/bin/bash
+#
+# This script builds mod_ssl.so for Apache 2.2.x, with SSL NPN
+# support.
+#
+# NPN is not yet supported in Apache HTTPD mod_ssl. A patch has been
+# submitted to Apache to enable NPN in mod_ssl:
+# https://issues.apache.org/bugzilla/show_bug.cgi?id=52210
+#
+# Thus, we download the 1.0.1 release of OpenSSL and the most recent
+# release of Apache 2.2, and apply a patch to enable NPN support in
+# Apache mod_ssl.
+#
+# We currently statically link OpenSSL with mod_ssl, which results in
+# a large (several megabyte) mod_ssl.so. If you prefer, you can
+# install NPN-enabled OpenSSL as a shared library system-wide, by
+# building OpenSSL like so:
+#
+# ./config shared -fPIC # -fPIC is only needed on some architectures
+# make
+# sudo make install
+#
+# And Apache like so (after applying the NPN patch):
+#
+# ./configure --enable-ssl=shared
+# make
+
+MODSSL_SO_DESTPATH=$(pwd)/mod_ssl.so
+
+if [ -f $MODSSL_SO_DESTPATH ]; then
+ echo "mod_ssl already exists at $MODSSL_SO_DESTPATH. Please remove."
+ exit 1
+fi
+
+if [ -z "$BUILDROOT" ]; then
+ BUILDROOT=$(mktemp -d)
+ REMOVE_BUILDROOT=1
+else
+ REMOVE_BUILDROOT=0
+fi
+
+if [ ! -d "$BUILDROOT" ]; then
+ echo "Not a directory: $BUILDROOT"
+ exit 1
+fi
+
+# Convert BUILDROOT to an absolute path.
+BUILDROOT="$(cd $(dirname $BUILDROOT); pwd)/$(basename $BUILDROOT)"
+echo "Using buildroot: $BUILDROOT"
+echo ""
+
+function do_cleanup {
+ echo ""
+ echo "Build aborted."
+ if [ $REMOVE_BUILDROOT -eq 1 ]; then
+ echo -n "Cleaning up ... "
+ rm -rf "$BUILDROOT"
+ echo "done"
+ fi
+ exit 1
+}
+
+trap 'do_cleanup' SIGINT SIGTERM
+
+PROGRESS_DIR=$BUILDROOT/progress
+mkdir -p $PROGRESS_DIR
+if [ $? -ne 0 ]; then
+ do_cleanup
+fi
+
+function download_file {
+ if [ ! -f "$PROGRESS_DIR/$2.downloaded" ]; then
+ echo "Downloading $1"
+ curl -f -# "$1" -o $2 || do_cleanup
+ if [[ $(md5sum $2 | cut -d\ -f1) != $3 ]]; then
+ echo "md5sum mismatch for $2"
+ do_cleanup
+ fi
+ touch "$PROGRESS_DIR/$2.downloaded"
+ else
+ echo "Already downloaded $1"
+ fi
+}
+
+function uncompress_file {
+ if [ ! -f "$PROGRESS_DIR/$1.uncompressed" ]; then
+ echo -n "Uncompressing $1 ... "
+ tar xzf $1 || do_cleanup
+ echo "done"
+ touch "$PROGRESS_DIR/$1.uncompressed"
+ else
+ echo "Already uncompressed $1"
+ fi
+}
+
+OPENSSL_SRC_TGZ_URL="https://www.openssl.org/source/openssl-1.0.1g.tar.gz"
+APACHE_HTTPD_SRC_TGZ_URL="https://archive.apache.org/dist/httpd/httpd-2.2.27.tar.gz"
+APACHE_HTTPD_MODSSL_NPN_PATCH_PATH="$(dirname $0)/scripts/mod_ssl_with_npn.patch"
+
+OPENSSL_SRC_TGZ=$(basename $OPENSSL_SRC_TGZ_URL)
+APACHE_HTTPD_SRC_TGZ=$(basename $APACHE_HTTPD_SRC_TGZ_URL)
+APACHE_HTTPD_MODSSL_NPN_PATCH="mod_ssl_npn.patch"
+
+OPENSSL_SRC_ROOT=${OPENSSL_SRC_TGZ%.tar.gz}
+OPENSSL_INST_ROOT=${OPENSSL_SRC_ROOT}_install
+APACHE_HTTPD_SRC_ROOT=${APACHE_HTTPD_SRC_TGZ%.tar.gz}
+
+OPENSSL_BUILDLOG=$(mktemp -p /tmp openssl_buildlog.XXXXXXXXXX)
+APACHE_HTTPD_BUILDLOG=$(mktemp -p /tmp httpd_buildlog.XXXXXXXXXX)
+
+cp $APACHE_HTTPD_MODSSL_NPN_PATCH_PATH $BUILDROOT/$APACHE_HTTPD_MODSSL_NPN_PATCH
+
+pushd $BUILDROOT >/dev/null
+
+download_file $OPENSSL_SRC_TGZ_URL $OPENSSL_SRC_TGZ de62b43dfcd858e66a74bee1c834e959
+download_file $APACHE_HTTPD_SRC_TGZ_URL $APACHE_HTTPD_SRC_TGZ 148eb08e731916a43a33a6ffa25f17c0
+
+echo ""
+
+uncompress_file $OPENSSL_SRC_TGZ
+uncompress_file $APACHE_HTTPD_SRC_TGZ
+
+if [ ! -f "$PROGRESS_DIR/modssl_patched" ]; then
+ pushd $APACHE_HTTPD_SRC_ROOT >/dev/null
+ echo "Applying Apache mod_ssl NPN patch ... "
+ patch -p0 < $BUILDROOT/$APACHE_HTTPD_MODSSL_NPN_PATCH
+ if [ $? -ne 0 ]; then
+ echo "Failed to patch."
+ do_cleanup
+ fi
+ echo "done"
+ popd >/dev/null # $APACHE_HTTPD_SRC_ROOT
+ touch "$PROGRESS_DIR/modssl_patched"
+else
+ echo "Already applied Apache mod_ssl NPN patch."
+fi
+
+echo ""
+
+if [ ! -f "$PROGRESS_DIR/openssl_configured" ]; then
+ pushd $OPENSSL_SRC_ROOT >/dev/null
+ echo -n "Configuring OpenSSL ... "
+ ./config no-shared -fPIC --openssldir=$BUILDROOT/$OPENSSL_INST_ROOT >> $OPENSSL_BUILDLOG
+ if [ $? -ne 0 ]; then
+ echo "Failed. Build log at $OPENSSL_BUILDLOG."
+ do_cleanup
+ fi
+ echo "done"
+ popd >/dev/null # $OPENSSL_SRC_ROOT
+ touch "$PROGRESS_DIR/openssl_configured"
+else
+ echo "Already configured OpenSSL."
+fi
+
+if [ ! -f "$PROGRESS_DIR/openssl_built" ]; then
+ pushd $OPENSSL_SRC_ROOT >/dev/null
+ echo -n "Building OpenSSL (this may take a while) ... "
+ make install >> $OPENSSL_BUILDLOG 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Failed. Build log at $OPENSSL_BUILDLOG."
+ do_cleanup
+ fi
+ # A hacky fix that helps things build on CentOS:
+ if grep -q CentOS /etc/issue; then
+ sed --in-place 's/^Libs\.private: -ldl$/& -lcrypto/' \
+ $BUILDROOT/$OPENSSL_INST_ROOT/lib/pkgconfig/openssl.pc
+ fi
+ echo "done"
+ popd >/dev/null # $OPENSSL_SRC_ROOT
+ touch "$PROGRESS_DIR/openssl_built"
+else
+ echo "Already built OpenSSL."
+fi
+
+rm -f "$OPENSSL_BUILDLOG"
+
+echo ""
+
+if [ ! -f "$PROGRESS_DIR/modssl_configured" ]; then
+ pushd $APACHE_HTTPD_SRC_ROOT >/dev/null
+ echo -n "Configuring Apache mod_ssl ... "
+
+ # OpenSSL, as of version 1.0.1, changed its pkg-config file to list
+ # its dependent libraries in Libs.private. Prior to this, dependent
+ # libraries were listed in Libs. This change in 1.0.1 is the right
+ # thing for OpenSSL, but it breaks the Apache 2.2.x configure when
+ # linking statically against OpenSSL, since it assumes that all
+ # dependent libs are provided in the pkg config Libs directive. We
+ # run a search-replace on the configure script to tell it to include
+ # not only libraries in Libs, but also those in Libs.private:
+ mv configure configure.bak
+ sed 's/--libs-only-l openssl/--libs-only-l --static openssl/' configure.bak > configure
+ chmod --reference=configure.bak configure
+
+ ./configure --enable-ssl=shared --with-ssl=$BUILDROOT/$OPENSSL_INST_ROOT >> $APACHE_HTTPD_BUILDLOG
+ if [ $? -ne 0 ]; then
+ echo "Failed. Build log at $APACHE_HTTPD_BUILDLOG."
+ do_cleanup
+ fi
+ echo "done"
+ popd >/dev/null # $APACHE_HTTPD_SRC_ROOT
+ touch "$PROGRESS_DIR/modssl_configured"
+else
+ echo "Already configured Apache mod_ssl."
+fi
+
+if [ ! -f "$PROGRESS_DIR/modssl_built" ]; then
+ pushd $APACHE_HTTPD_SRC_ROOT >/dev/null
+ echo -n "Building Apache mod_ssl (this may take a while) ... "
+ make >> $APACHE_HTTPD_BUILDLOG 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Failed. Build log at $APACHE_HTTPD_BUILDLOG."
+ do_cleanup
+ fi
+ echo "done"
+ popd >/dev/null # $APACHE_HTTPD_SRC_ROOT
+ touch "$PROGRESS_DIR/modssl_built"
+else
+ echo "Already built Apache mod_ssl."
+fi
+
+rm -f "$APACHE_HTTPD_BUILDLOG"
+
+popd >/dev/null # $BUILDROOT
+
+MODSSL_SO_SRCPATH=$(find $BUILDROOT/$APACHE_HTTPD_SRC_ROOT -name mod_ssl.so)
+if [ $(echo $MODSSL_SO_SRCPATH | wc -l) -ne 1 ]; then
+ echo "Found multiple mod_ssl.so's:"
+ echo $MODSSL_SO_SRCPATH
+ do_cleanup
+fi
+
+cp $MODSSL_SO_SRCPATH $MODSSL_SO_DESTPATH
+
+if [ $REMOVE_BUILDROOT -eq 1 ]; then
+ rm -rf "$BUILDROOT"
+fi
+
+echo ""
+echo "Generated mod_ssl.so at $MODSSL_SO_DESTPATH."
Propchange: httpd/httpd/trunk/modules/spdy/support/build_modssl_with_npn.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/modules/spdy/support/build_modssl_with_npn.sh
------------------------------------------------------------------------------
svn:executable = *
Added: httpd/httpd/trunk/modules/spdy/support/install/common/BRANDING
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/BRANDING?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/BRANDING (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/BRANDING Mon Apr 28 10:55:17 2014
@@ -0,0 +1,5 @@
+COMPANY_FULLNAME=Google Inc.
+COMPANY_SHORTNAME=Google Inc.
+PRODUCT_FULLNAME=mod_spdy
+PRODUCT_SHORTNAME=mod_spdy
+COPYRIGHT=Copyright (C) 2012.
Added: httpd/httpd/trunk/modules/spdy/support/install/common/apt.include
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/apt.include?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/apt.include (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/apt.include Mon Apr 28 10:55:17 2014
@@ -0,0 +1,188 @@
+@@include@@variables.include
+
+APT_GET="`which apt-get 2> /dev/null`"
+APT_CONFIG="`which apt-config 2> /dev/null`"
+
+SOURCES_PREAMBLE="### THIS FILE IS AUTOMATICALLY CONFIGURED ###
+# You may comment out this entry, but any other modifications may be lost.\n"
+
+# Parse apt configuration and return requested variable value.
+apt_config_val() {
+ APTVAR="$1"
+ if [ -x "$APT_CONFIG" ]; then
+ "$APT_CONFIG" dump | sed -e "/^$APTVAR /"'!d' -e "s/^$APTVAR \"\(.*\)\".*/\1/"
+ fi
+}
+
+# Install the repository signing key (see also:
+# http://www.google.com/linuxrepositories/aboutkey.html)
+install_key() {
+ APT_KEY="`which apt-key 2> /dev/null`"
+ if [ -x "$APT_KEY" ]; then
+ "$APT_KEY" add - >/dev/null 2>&1 <<KEYDATA
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.2.2 (GNU/Linux)
+
+mQGiBEXwb0YRBADQva2NLpYXxgjNkbuP0LnPoEXruGmvi3XMIxjEUFuGNCP4Rj/a
+kv2E5VixBP1vcQFDRJ+p1puh8NU0XERlhpyZrVMzzS/RdWdyXf7E5S8oqNXsoD1z
+fvmI+i9b2EhHAA19Kgw7ifV8vMa4tkwslEmcTiwiw8lyUl28Wh4Et8SxzwCggDcA
+feGqtn3PP5YAdD0km4S4XeMEAJjlrqPoPv2Gf//tfznY2UyS9PUqFCPLHgFLe80u
+QhI2U5jt6jUKN4fHauvR6z3seSAsh1YyzyZCKxJFEKXCCqnrFSoh4WSJsbFNc4PN
+b0V0SqiTCkWADZyLT5wll8sWuQ5ylTf3z1ENoHf+G3um3/wk/+xmEHvj9HCTBEXP
+78X0A/0Tqlhc2RBnEf+AqxWvM8sk8LzJI/XGjwBvKfXe+l3rnSR2kEAvGzj5Sg0X
+4XmfTg4Jl8BNjWyvm2Wmjfet41LPmYJKsux3g0b8yzQxeOA4pQKKAU3Z4+rgzGmf
+HdwCG5MNT2A5XxD/eDd+L4fRx0HbFkIQoAi1J3YWQSiTk15fw7RMR29vZ2xlLCBJ
+bmMuIExpbnV4IFBhY2thZ2UgU2lnbmluZyBLZXkgPGxpbnV4LXBhY2thZ2VzLWtl
+eW1hc3RlckBnb29nbGUuY29tPohjBBMRAgAjAhsDBgsJCAcDAgQVAggDBBYCAwEC
+HgECF4AFAkYVdn8CGQEACgkQoECDD3+sWZHKSgCfdq3HtNYJLv+XZleb6HN4zOcF
+AJEAniSFbuv8V5FSHxeRimHx25671az+uQINBEXwb0sQCACuA8HT2nr+FM5y/kzI
+A51ZcC46KFtIDgjQJ31Q3OrkYP8LbxOpKMRIzvOZrsjOlFmDVqitiVc7qj3lYp6U
+rgNVaFv6Qu4bo2/ctjNHDDBdv6nufmusJUWq/9TwieepM/cwnXd+HMxu1XBKRVk9
+XyAZ9SvfcW4EtxVgysI+XlptKFa5JCqFM3qJllVohMmr7lMwO8+sxTWTXqxsptJo
+pZeKz+UBEEqPyw7CUIVYGC9ENEtIMFvAvPqnhj1GS96REMpry+5s9WKuLEaclWpd
+K3krttbDlY1NaeQUCRvBYZ8iAG9YSLHUHMTuI2oea07Rh4dtIAqPwAX8xn36JAYG
+2vgLAAMFB/wKqaycjWAZwIe98Yt0qHsdkpmIbarD9fGiA6kfkK/UxjL/k7tmS4Vm
+CljrrDZkPSQ/19mpdRcGXtb0NI9+nyM5trweTvtPw+HPkDiJlTaiCcx+izg79Fj9
+KcofuNb3lPdXZb9tzf5oDnmm/B+4vkeTuEZJ//IFty8cmvCpzvY+DAz1Vo9rA+Zn
+cpWY1n6z6oSS9AsyT/IFlWWBZZ17SpMHu+h4Bxy62+AbPHKGSujEGQhWq8ZRoJAT
+G0KSObnmZ7FwFWu1e9XFoUCt0bSjiJWTIyaObMrWu/LvJ3e9I87HseSJStfw6fki
+5og9qFEkMrIrBCp3QGuQWBq/rTdMuwNFiEkEGBECAAkFAkXwb0sCGwwACgkQoECD
+D3+sWZF/WACfeNAu1/1hwZtUo1bR+MWiCjpvHtwAnA1R3IHqFLQ2X3xJ40XPuAyY
+/FJG
+=Quqp
+-----END PGP PUBLIC KEY BLOCK-----
+KEYDATA
+ fi
+}
+
+# Set variables for the locations of the apt sources lists.
+find_apt_sources() {
+ APTDIR=$(apt_config_val Dir)
+ APTETC=$(apt_config_val 'Dir::Etc')
+ APT_SOURCES="$APTDIR$APTETC$(apt_config_val 'Dir::Etc::sourcelist')"
+ APT_SOURCESDIR="$APTDIR$APTETC$(apt_config_val 'Dir::Etc::sourceparts')"
+}
+
+# Update the Google repository if it's not set correctly.
+# Note: this doesn't necessarily enable the repository, it just makes sure the
+# correct settings are available in the sources list.
+# Returns:
+# 0 - no update necessary
+# 2 - error
+update_bad_sources() {
+ if [ ! "$REPOCONFIG" ]; then
+ return 0
+ fi
+
+ find_apt_sources
+
+ SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
+ # Don't do anything if the file isn't there, since that probably means the
+ # user disabled it.
+ if [ ! -r "$SOURCELIST" ]; then
+ return 0
+ fi
+
+ # Basic check for active configurations (non-blank, non-comment lines).
+ ACTIVECONFIGS=$(grep -v "^[[:space:]]*\(#.*\)\?$" "$SOURCELIST" 2>/dev/null)
+
+ # Check if the correct repository configuration is in there.
+ REPOMATCH=$(grep "^[[:space:]#]*\b$REPOCONFIG\b" "$SOURCELIST" \
+ 2>/dev/null)
+
+ # Check if the correct repository is disabled.
+ MATCH_DISABLED=$(echo "$REPOMATCH" | grep "^[[:space:]]*#" 2>/dev/null)
+
+ # Now figure out if we need to fix things.
+ BADCONFIG=1
+ if [ "$REPOMATCH" ]; then
+ # If it's there and active, that's ideal, so nothing to do.
+ if [ ! "$MATCH_DISABLED" ]; then
+ BADCONFIG=0
+ else
+ # If it's not active, but neither is anything else, that's fine too.
+ if [ ! "$ACTIVECONFIGS" ]; then
+ BADCONFIG=0
+ fi
+ fi
+ fi
+
+ if [ $BADCONFIG -eq 0 ]; then
+ return 0
+ fi
+
+ # At this point, either the correct configuration is completely missing, or
+ # the wrong configuration is active. In that case, just abandon the mess and
+ # recreate the file with the correct configuration. If there were no active
+ # configurations before, create the new configuration disabled.
+ DISABLE=""
+ if [ ! "$ACTIVECONFIGS" ]; then
+ DISABLE="#"
+ fi
+ printf "$SOURCES_PREAMBLE" > "$SOURCELIST"
+ printf "$DISABLE$REPOCONFIG\n" >> "$SOURCELIST"
+ if [ $? -eq 0 ]; then
+ return 0
+ fi
+ return 2
+}
+
+# Add the Google repository to the apt sources.
+# Returns:
+# 0 - sources list was created
+# 2 - error
+create_sources_lists() {
+ if [ ! "$REPOCONFIG" ]; then
+ return 0
+ fi
+
+ find_apt_sources
+
+ SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
+ if [ -d "$APT_SOURCESDIR" ]; then
+ printf "$SOURCES_PREAMBLE" > "$SOURCELIST"
+ printf "$REPOCONFIG\n" >> "$SOURCELIST"
+ if [ $? -eq 0 ]; then
+ return 0
+ fi
+ fi
+ return 2
+}
+
+# Remove our custom sources list file.
+# Returns:
+# 0 - successfully removed, or not configured
+# !0 - failed to remove
+clean_sources_lists() {
+ if [ ! "$REPOCONFIG" ]; then
+ return 0
+ fi
+
+ find_apt_sources
+
+ rm -f "$APT_SOURCESDIR/@@PACKAGE@@.list" \
+ "$APT_SOURCESDIR/@@PACKAGE@@-@@CHANNEL@@.list"
+}
+
+# Detect if the repo config was disabled by distro upgrade and enable if
+# necessary.
+handle_distro_upgrade() {
+ if [ ! "$REPOCONFIG" ]; then
+ return 0
+ fi
+
+ find_apt_sources
+ SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
+ if [ -r "$SOURCELIST" ]; then
+ REPOLINE=$(grep -E "^[[:space:]]*#[[:space:]]*$REPOCONFIG[[:space:]]*# disabled on upgrade to .*" "$SOURCELIST")
+ if [ $? -eq 0 ]; then
+ sed -i -e "s,^[[:space:]]*#[[:space:]]*\($REPOCONFIG\)[[:space:]]*# disabled on upgrade to .*,\1," \
+ "$SOURCELIST"
+ LOGGER=$(which logger 2> /dev/null)
+ if [ "$LOGGER" ]; then
+ "$LOGGER" -t "$0" "Reverted repository modification: $REPOLINE."
+ fi
+ fi
+ fi
+}
+
Added: httpd/httpd/trunk/modules/spdy/support/install/common/installer.include
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/installer.include?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/installer.include (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/installer.include Mon Apr 28 10:55:17 2014
@@ -0,0 +1,116 @@
+# Recursively replace @@include@@ template variables with the referenced file,
+# and write the resulting text to stdout.
+process_template_includes() {
+ INCSTACK+="$1->"
+ # Includes are relative to the file that does the include.
+ INCDIR=$(dirname $1)
+ # Clear IFS so 'read' doesn't trim whitespace
+ local OLDIFS="$IFS"
+ IFS=''
+ while read -r LINE
+ do
+ INCLINE=$(sed -e '/^[[:space:]]*@@include@@/!d' <<<$LINE)
+ if [ -n "$INCLINE" ]; then
+ INCFILE=$(echo $INCLINE | sed -e "s#@@include@@\(.*\)#\1#")
+ # Simple filename match to detect cyclic includes.
+ CYCLE=$(sed -e "\#$INCFILE#"'!d' <<<$INCSTACK)
+ if [ "$CYCLE" ]; then
+ echo "ERROR: Possible cyclic include detected." 1>&2
+ echo "$INCSTACK$INCFILE" 1>&2
+ exit 1
+ fi
+ if [ ! -r "$INCDIR/$INCFILE" ]; then
+ echo "ERROR: Couldn't read include file: $INCDIR/$INCFILE" 1>&2
+ exit 1
+ fi
+ process_template_includes "$INCDIR/$INCFILE"
+ else
+ echo "$LINE"
+ fi
+ done < "$1"
+ IFS="$OLDIFS"
+ INCSTACK=${INCSTACK%"$1->"}
+}
+
+# Replace template variables (@@VARNAME@@) in the given template file. If a
+# second argument is given, save the processed text to that filename, otherwise
+# modify the template file in place.
+process_template() (
+ # Don't worry if some of these substitution variables aren't set.
+ # Note that this function is run in a sub-shell so we don't leak this
+ # setting, since we still want unbound variables to be an error elsewhere.
+ set +u
+
+ local TMPLIN="$1"
+ if [ -z "$2" ]; then
+ local TMPLOUT="$TMPLIN"
+ else
+ local TMPLOUT="$2"
+ fi
+ # Process includes first so included text also gets substitutions.
+ TMPLINCL="$(process_template_includes "$TMPLIN")"
+ sed \
+ -e "s#@@PACKAGE@@#${PACKAGE}#g" \
+ -e "s#@@CHANNEL@@#${CHANNEL}#g" \
+ -e "s#@@COMPANY_FULLNAME@@#${COMPANY_FULLNAME}#g" \
+ -e "s#@@VERSION@@#${VERSION}#g" \
+ -e "s#@@REVISION@@#${REVISION}#g" \
+ -e "s#@@VERSIONFULL@@#${VERSIONFULL}#g" \
+ -e "s#@@BUILDDIR@@#${BUILDDIR}#g" \
+ -e "s#@@STAGEDIR@@#${STAGEDIR}#g" \
+ -e "s#@@SCRIPTDIR@@#${SCRIPTDIR}#g" \
+ -e "s#@@PRODUCTURL@@#${PRODUCTURL}#g" \
+ -e "s#@@PREDEPENDS@@#${PREDEPENDS}#g" \
+ -e "s#@@DEPENDS@@#${DEPENDS}#g" \
+ -e "s#@@PROVIDES@@#${PROVIDES}#g" \
+ -e "s#@@REPLACES@@#${REPLACES}#g" \
+ -e "s#@@CONFLICTS@@#${CONFLICTS}#g" \
+ -e "s#@@ARCHITECTURE@@#${HOST_ARCH}#g" \
+ -e "s#@@MAINTNAME@@#${MAINTNAME}#g" \
+ -e "s#@@MAINTMAIL@@#${MAINTMAIL}#g" \
+ -e "s#@@REPOCONFIG@@#${REPOCONFIG}#g" \
+ -e "s#@@SHORTDESC@@#${SHORTDESC}#g" \
+ -e "s#@@FULLDESC@@#${FULLDESC}#g" \
+ -e "s#@@APACHE_CONFDIR@@#${APACHE_CONFDIR}#g" \
+ -e "s#@@APACHE_MODULEDIR@@#${APACHE_MODULEDIR}#g" \
+ -e "s#@@APACHE_USER@@#${APACHE_USER}#g" \
+ -e "s#@@MODSPDY_ENABLE_UPDATES@@#${MODSPDY_ENABLE_UPDATES}#g" \
+ -e "s#@@COMMENT_OUT_DEFLATE@@#${COMMENT_OUT_DEFLATE}#g" \
+ > "$TMPLOUT" <<< "$TMPLINCL"
+)
+
+# Setup the installation directory hierachy in the package staging area.
+prep_staging_common() {
+ install -m 755 -d \
+ "${STAGEDIR}${APACHE_CONFDIR}" \
+ "${STAGEDIR}${APACHE_MODULEDIR}"
+}
+
+get_version_info() {
+ # Default to a bogus low version, so if somebody creates and installs
+ # a package with no version info, it won't prevent upgrading when
+ # trying to install a properly versioned package (i.e. a proper
+ # package will always be "newer").
+ VERSION="0.0.0.0"
+ # Use epoch timestamp so packages with bogus versions still increment
+ # and will upgrade older bogus-versioned packages.
+ REVISION=$(date +"%s")
+ # Default to non-official build since official builds set this
+ # properly.
+ OFFICIAL_BUILD=0
+
+ VERSIONFILE="${BUILDDIR}/installer/version.txt"
+ if [ -f "${VERSIONFILE}" ]; then
+ source "${VERSIONFILE}"
+ VERSION="${MAJOR}.${MINOR}.${BUILD}.${PATCH}"
+ REVISION="${LASTCHANGE}"
+ fi
+}
+
+stage_install_common() {
+ echo "Staging common install files in '${STAGEDIR}'..."
+
+ # app and resources
+ install -m 644 -s "${BUILDDIR}/libmod_spdy.so" "${STAGEDIR}${APACHE_MODULEDIR}/mod_spdy.so"
+ install -m 644 -s "${BUILDDIR}/mod_ssl.so" "${STAGEDIR}${APACHE_MODULEDIR}/mod_ssl_with_npn.so"
+}
Added: httpd/httpd/trunk/modules/spdy/support/install/common/mod-spdy.info
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/mod-spdy.info?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/mod-spdy.info (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/mod-spdy.info Mon Apr 28 10:55:17 2014
@@ -0,0 +1,20 @@
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# This file provides common configuration information for building
+# mod-spdy packages for various platforms.
+
+# Base name of the package.
+PACKAGE="mod-spdy"
+
+# Brief package description.
+SHORTDESC="Apache 2 module to enable SPDY support."
+
+# Detailed package description.
+FULLDESC="mod_spdy is an Apache module that allows an Apache server to support the SPDY protocol for serving HTTP resources."
+
+# Package maintainer information.
+MAINTNAME="mod_spdy developers"
+MAINTMAIL="mod-spdy-dev@googlegroups.com"
+PRODUCTURL="http://code.google.com/p/mod-spdy/"
Added: httpd/httpd/trunk/modules/spdy/support/install/common/repo.cron
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/repo.cron?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/repo.cron (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/repo.cron Mon Apr 28 10:55:17 2014
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# This script is part of the @@PACKAGE@@ package.
+#
+# It creates the repository configuration file for package updates, and it
+# monitors that config to see if it has been disabled by the overly aggressive
+# distro upgrade process (e.g. intrepid -> jaunty). When this situation is
+# detected, the respository will be re-enabled. If the respository is disabled
+# for any other reason, this won't re-enable it.
+#
+# This functionality can be controlled by creating the $DEFAULTS_FILE and
+# setting "repo_add_once" and/or "repo_reenable_on_distupgrade" to "true" or
+# "false" as desired. An empty $DEFAULTS_FILE is the same as setting both values
+# to "false".
+
+@@include@@apt.include
+
+## MAIN ##
+DEFAULTS_FILE="/etc/default/@@PACKAGE@@"
+if [ -r "$DEFAULTS_FILE" ]; then
+ . "$DEFAULTS_FILE"
+fi
+
+if [ "$repo_add_once" = "true" ]; then
+ install_key
+ create_sources_lists
+ RES=$?
+ # Sources creation succeeded, so stop trying.
+ if [ $RES -ne 2 ]; then
+ sed -i -e 's/[[:space:]]*repo_add_once=.*/repo_add_once="false"/' "$DEFAULTS_FILE"
+ fi
+else
+ update_bad_sources
+fi
+
+if [ "$repo_reenable_on_distupgrade" = "true" ]; then
+ handle_distro_upgrade
+fi
Added: httpd/httpd/trunk/modules/spdy/support/install/common/rpm.include
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/rpm.include?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/rpm.include (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/rpm.include Mon Apr 28 10:55:17 2014
@@ -0,0 +1,305 @@
+@@include@@variables.include
+
+# Install the repository signing key (see also:
+# http://www.google.com/linuxrepositories/aboutkey.html)
+install_rpm_key() {
+ # Check to see if key already exists.
+ rpm -q gpg-pubkey-7fac5991-4615767f > /dev/null 2>&1
+ if [ "$?" -eq "0" ]; then
+ # Key already exists
+ return 0
+ fi
+ # This is to work around a bug in RPM 4.7.0. (see http://crbug.com/22312)
+ rpm -q gpg-pubkey-7fac5991-45f06f46 > /dev/null 2>&1
+ if [ "$?" -eq "0" ]; then
+ # Key already exists
+ return 0
+ fi
+
+ # RPM on Mandriva 2009 is dumb and does not understand "rpm --import -"
+ TMPKEY=$(mktemp /tmp/google.sig.XXXXXX)
+ if [ -n "$TMPKEY" ]; then
+ cat > "$TMPKEY" <<KEYDATA
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.2.2 (GNU/Linux)
+
+mQGiBEXwb0YRBADQva2NLpYXxgjNkbuP0LnPoEXruGmvi3XMIxjEUFuGNCP4Rj/a
+kv2E5VixBP1vcQFDRJ+p1puh8NU0XERlhpyZrVMzzS/RdWdyXf7E5S8oqNXsoD1z
+fvmI+i9b2EhHAA19Kgw7ifV8vMa4tkwslEmcTiwiw8lyUl28Wh4Et8SxzwCggDcA
+feGqtn3PP5YAdD0km4S4XeMEAJjlrqPoPv2Gf//tfznY2UyS9PUqFCPLHgFLe80u
+QhI2U5jt6jUKN4fHauvR6z3seSAsh1YyzyZCKxJFEKXCCqnrFSoh4WSJsbFNc4PN
+b0V0SqiTCkWADZyLT5wll8sWuQ5ylTf3z1ENoHf+G3um3/wk/+xmEHvj9HCTBEXP
+78X0A/0Tqlhc2RBnEf+AqxWvM8sk8LzJI/XGjwBvKfXe+l3rnSR2kEAvGzj5Sg0X
+4XmfTg4Jl8BNjWyvm2Wmjfet41LPmYJKsux3g0b8yzQxeOA4pQKKAU3Z4+rgzGmf
+HdwCG5MNT2A5XxD/eDd+L4fRx0HbFkIQoAi1J3YWQSiTk15fw7RMR29vZ2xlLCBJ
+bmMuIExpbnV4IFBhY2thZ2UgU2lnbmluZyBLZXkgPGxpbnV4LXBhY2thZ2VzLWtl
+eW1hc3RlckBnb29nbGUuY29tPohjBBMRAgAjAhsDBgsJCAcDAgQVAggDBBYCAwEC
+HgECF4AFAkYVdn8CGQEACgkQoECDD3+sWZHKSgCfdq3HtNYJLv+XZleb6HN4zOcF
+AJEAniSFbuv8V5FSHxeRimHx25671az+uQINBEXwb0sQCACuA8HT2nr+FM5y/kzI
+A51ZcC46KFtIDgjQJ31Q3OrkYP8LbxOpKMRIzvOZrsjOlFmDVqitiVc7qj3lYp6U
+rgNVaFv6Qu4bo2/ctjNHDDBdv6nufmusJUWq/9TwieepM/cwnXd+HMxu1XBKRVk9
+XyAZ9SvfcW4EtxVgysI+XlptKFa5JCqFM3qJllVohMmr7lMwO8+sxTWTXqxsptJo
+pZeKz+UBEEqPyw7CUIVYGC9ENEtIMFvAvPqnhj1GS96REMpry+5s9WKuLEaclWpd
+K3krttbDlY1NaeQUCRvBYZ8iAG9YSLHUHMTuI2oea07Rh4dtIAqPwAX8xn36JAYG
+2vgLAAMFB/wKqaycjWAZwIe98Yt0qHsdkpmIbarD9fGiA6kfkK/UxjL/k7tmS4Vm
+CljrrDZkPSQ/19mpdRcGXtb0NI9+nyM5trweTvtPw+HPkDiJlTaiCcx+izg79Fj9
+KcofuNb3lPdXZb9tzf5oDnmm/B+4vkeTuEZJ//IFty8cmvCpzvY+DAz1Vo9rA+Zn
+cpWY1n6z6oSS9AsyT/IFlWWBZZ17SpMHu+h4Bxy62+AbPHKGSujEGQhWq8ZRoJAT
+G0KSObnmZ7FwFWu1e9XFoUCt0bSjiJWTIyaObMrWu/LvJ3e9I87HseSJStfw6fki
+5og9qFEkMrIrBCp3QGuQWBq/rTdMuwNFiEkEGBECAAkFAkXwb0sCGwwACgkQoECD
+D3+sWZF/WACfeNAu1/1hwZtUo1bR+MWiCjpvHtwAnA1R3IHqFLQ2X3xJ40XPuAyY
+/FJG
+=Quqp
+-----END PGP PUBLIC KEY BLOCK-----
+KEYDATA
+ rpm --import "$TMPKEY"
+ rc=$?
+ rm -f "$TMPKEY"
+ if [ "$rc" -eq "0" ]; then
+ return 0
+ fi
+ fi
+ return 1
+}
+
+determine_rpm_package_manager() {
+ local RELEASE
+ LSB_RELEASE="$(which lsb_release 2> /dev/null)"
+ if [ -x "$LSB_RELEASE" ]; then
+ RELEASE=$(lsb_release -i 2> /dev/null)
+ case $DISTRIB_ID in
+ "Fedora")
+ PACKAGEMANAGER=yum
+ ;;
+ "MandrivaLinux")
+ PACKAGEMANAGER=urpmi
+ ;;
+ "SUSE LINUX")
+ PACKAGEMANAGER=yast
+ ;;
+ esac
+ fi
+
+ if [ "$PACKAGEMANAGER" ]; then
+ return
+ fi
+
+ # Fallback methods that are probably unnecessary on modern systems.
+ if [ -f "/etc/lsb-release" ]; then
+ # file missing on Fedora, does not contain DISTRIB_ID on OpenSUSE.
+ eval $(sed -e '/DISTRIB_ID/!d' /etc/lsb-release)
+ case $DISTRIB_ID in
+ MandrivaLinux)
+ PACKAGEMANAGER=urpmi
+ ;;
+ esac
+ fi
+
+ if [ "$PACKAGEMANAGER" ]; then
+ return
+ fi
+
+ if [ -f "/etc/fedora-release" ] || [ -f "/etc/redhat-release" ]; then
+ PACKAGEMANAGER=yum
+ elif [ -f "/etc/SuSE-release" ]; then
+ PACKAGEMANAGER=yast
+ elif [ -f "/etc/mandriva-release" ]; then
+ PACKAGEMANAGER=urpmi
+ fi
+}
+
+DEFAULT_ARCH="@@ARCHITECTURE@@"
+YUM_REPO_FILE="/etc/yum.repos.d/@@PACKAGE@@.repo"
+ZYPPER_REPO_FILE="/etc/zypp/repos.d/@@PACKAGE@@.repo"
+URPMI_REPO_FILE="/etc/urpmi/urpmi.cfg"
+
+install_yum() {
+ install_rpm_key
+
+ if [ ! "$REPOCONFIG" ]; then
+ return 0
+ fi
+
+ if [ -d "/etc/yum.repos.d" ]; then
+cat > "$YUM_REPO_FILE" << REPOCONTENT
+[@@PACKAGE@@]
+name=@@PACKAGE@@
+baseurl=$REPOCONFIG/$DEFAULT_ARCH
+enabled=1
+gpgcheck=1
+REPOCONTENT
+ fi
+}
+
+# This is called by the cron job, rather than in the RPM postinstall.
+# We cannot do this during the install when urpmi is running due to
+# database locking. We also need to enable the repository, and we can
+# only do that while we are online.
+# see: https://qa.mandriva.com/show_bug.cgi?id=31893
+configure_urpmi() {
+ if [ ! "$REPOCONFIG" ]; then
+ return 0
+ fi
+
+ urpmq --list-media | grep -q -s "^@@PACKAGE@@$"
+ if [ "$?" -eq "0" ]; then
+ # Repository already configured
+ return 0
+ fi
+ urpmi.addmedia --update \
+ "@@PACKAGE@@" "$REPOCONFIG/$DEFAULT_ARCH"
+}
+
+install_urpmi() {
+ # urpmi not smart enough to pull media_info/pubkey from the repository?
+ install_rpm_key
+
+ # Defer urpmi.addmedia to configure_urpmi() in the cron job.
+ # See comment there.
+ #
+ # urpmi.addmedia --update \
+ # "@@PACKAGE@@" "$REPOCONFIG/$DEFAULT_ARCH"
+}
+
+install_yast() {
+ if [ ! "$REPOCONFIG" ]; then
+ return 0
+ fi
+
+ # We defer adding the key to later. See comment in the cron job.
+
+ # Ideally, we would run: zypper addrepo -t YUM -f \
+ # "$REPOCONFIG/$DEFAULT_ARCH" "@@PACKAGE@@"
+ # but that does not work when zypper is running.
+ if [ -d "/etc/zypp/repos.d" ]; then
+cat > "$ZYPPER_REPO_FILE" << REPOCONTENT
+[@@PACKAGE@@]
+name=@@PACKAGE@@
+enabled=1
+autorefresh=1
+baseurl=$REPOCONFIG/$DEFAULT_ARCH
+type=rpm-md
+keeppackages=0
+REPOCONTENT
+ fi
+}
+
+# Check if the automatic repository configuration is done, so we know when to
+# stop trying.
+verify_install() {
+ # It's probably enough to see that the repo configs have been created. If they
+ # aren't configured properly, update_bad_repo should catch that when it's run.
+ case $1 in
+ "yum")
+ [ -f "$YUM_REPO_FILE" ]
+ ;;
+ "yast")
+ [ -f "$ZYPPER_REPO_FILE" ]
+ ;;
+ "urpmi")
+ urpmq --list-url | grep -q -s "\b@@PACKAGE@@\b"
+ ;;
+ esac
+}
+
+# Update the Google repository if it's not set correctly.
+update_bad_repo() {
+ if [ ! "$REPOCONFIG" ]; then
+ return 0
+ fi
+
+ determine_rpm_package_manager
+
+ case $PACKAGEMANAGER in
+ "yum")
+ update_repo_file "$YUM_REPO_FILE"
+ ;;
+ "yast")
+ update_repo_file "$ZYPPER_REPO_FILE"
+ ;;
+ "urpmi")
+ update_urpmi_cfg
+ ;;
+ esac
+}
+
+update_repo_file() {
+ REPO_FILE="$1"
+
+ # Don't do anything if the file isn't there, since that probably means the
+ # user disabled it.
+ if [ ! -r "$REPO_FILE" ]; then
+ return 0
+ fi
+
+ # Check if the correct repository configuration is in there.
+ REPOMATCH=$(grep "^baseurl=$REPOCONFIG/$DEFAULT_ARCH" "$REPO_FILE" \
+ 2>/dev/null)
+ # If it's there, nothing to do
+ if [ "$REPOMATCH" ]; then
+ return 0
+ fi
+
+ # Check if it's there but disabled by commenting out (as opposed to using the
+ # 'enabled' setting).
+ MATCH_DISABLED=$(grep "^[[:space:]]*#.*baseurl=$REPOCONFIG/$DEFAULT_ARCH" \
+ "$REPO_FILE" 2>/dev/null)
+ if [ "$MATCH_DISABLED" ]; then
+ # It's OK for it to be disabled, as long as nothing bogus is enabled in its
+ # place.
+ ACTIVECONFIGS=$(grep "^baseurl=.*" "$REPO_FILE" 2>/dev/null)
+ if [ ! "$ACTIVECONFIGS" ]; then
+ return 0
+ fi
+ fi
+
+ # If we get here, the correct repository wasn't found, or something else is
+ # active, so fix it. This assumes there is a 'baseurl' setting, but if not,
+ # then that's just another way of disabling, so we won't try to add it.
+ sed -i -e "s,^baseurl=.*,baseurl=$REPOCONFIG/$DEFAULT_ARCH," "$REPO_FILE"
+}
+
+update_urpmi_cfg() {
+ REPOCFG=$(urpmq --list-url | grep "\b@@PACKAGE@@\b")
+ if [ ! "$REPOCFG" ]; then
+ # Don't do anything if the repo isn't there, since that probably means the
+ # user deleted it.
+ return 0
+ fi
+
+ # See if it's the right repo URL
+ REPOMATCH=$(echo "$REPOCFG" | grep "\b$REPOCONFIG/$DEFAULT_ARCH\b")
+ # If so, nothing to do
+ if [ "$REPOMATCH" ]; then
+ return 0
+ fi
+
+ # Looks like it's the wrong URL, so recreate it.
+ urpmi.removemedia "@@PACKAGE@@" && \
+ urpmi.addmedia --update "@@PACKAGE@@" "$REPOCONFIG/$DEFAULT_ARCH"
+}
+
+# We only remove the repository configuration during a purge. Since RPM has
+# no equivalent to dpkg --purge, the code below is actually never used. We
+# keep it only for reference purposes, should we ever need it.
+#
+#remove_yum() {
+# rm -f "$YUM_REPO_FILE"
+#}
+#
+#remove_urpmi() {
+# # Ideally, we would run: urpmi.removemedia "@@PACKAGE@@"
+# # but that does not work when urpmi is running.
+# # Sentinel comment text does not work either because urpmi.update removes
+# # all comments. So we just delete the entry that matches what we originally
+# # inserted. If such an entry was added manually, that's tough luck.
+# if [ -f "$URPMI_REPO_FILE" ]; then
+# sed -i '\_^@@PACKAGE@@ $REPOCONFIG/$DEFAULT_ARCH {$_,/^}$/d' "$URPMI_REPO_FILE"
+# fi
+#}
+#
+#remove_yast() {
+# # Ideally, we would run: zypper removerepo "@@PACKAGE@@"
+# # but that does not work when zypper is running.
+# rm -f /etc/zypp/repos.d/@@PACKAGE@@.repo
+#}
Added: httpd/httpd/trunk/modules/spdy/support/install/common/rpmrepo.cron
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/rpmrepo.cron?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/rpmrepo.cron (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/rpmrepo.cron Mon Apr 28 10:55:17 2014
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# This script is part of the @@PACKAGE@@ package.
+#
+# It creates the repository configuration file for package updates, since
+# we cannot do this during the @@PACKAGE@@ installation since the repository
+# is locked.
+#
+# This functionality can be controlled by creating the $DEFAULTS_FILE and
+# setting "repo_add_once" to "true" or "false" as desired. An empty
+# $DEFAULTS_FILE is the same as setting the value to "false".
+
+@@include@@rpm.include
+
+## MAIN ##
+DEFAULTS_FILE="/etc/default/@@PACKAGE@@"
+if [ -r "$DEFAULTS_FILE" ]; then
+ . "$DEFAULTS_FILE"
+fi
+
+if [ "$repo_add_once" = "true" ]; then
+ determine_rpm_package_manager
+
+ case $PACKAGEMANAGER in
+ "urpmi")
+ # We need to configure urpmi after the install has finished.
+ # See configure_urpmi() for details.
+ configure_urpmi
+ ;;
+ "yast")
+ # It looks as though yast/zypper has a lock on the RPM DB during
+ # postinstall, so we cannot add the signing key with install_rpm_key().
+ # Instead, we attempt to do this here. If the user attempt to update before
+ # the cron job imports the key, Yast will grab the key from our server and
+ # prompt the user to accept the key.
+ install_rpm_key
+ ;;
+ esac
+
+ if [ $? -eq 0 ]; then
+ # Before we quit auto-configuration, check that everything looks sane, since
+ # part of this happened during package install and we don't have the return
+ # value of that process.
+ verify_install $PACKAGEMANAGER
+ if [ $? -eq 0 ]; then
+ sed -i -e 's/[[:space:]]*repo_add_once=.*/repo_add_once="false"/' \
+ "$DEFAULTS_FILE"
+ fi
+ fi
+else
+ update_bad_repo
+fi
Added: httpd/httpd/trunk/modules/spdy/support/install/common/spdy.conf.template
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/spdy.conf.template?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/spdy.conf.template (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/spdy.conf.template Mon Apr 28 10:55:17 2014
@@ -0,0 +1,22 @@
+<IfModule spdy_module>
+ # Turn on mod_spdy. To completely disable mod_spdy, you can set
+ # this to "off".
+ SpdyEnabled on
+
+ # In order to support concurrent multiplexing of requests over a
+ # single connection, mod_spdy maintains its own thread pool in
+ # each Apache child process for processing requests. The default
+ # size of this thread pool is very conservative; you can override
+ # it with a larger value (as below) to increase concurrency, at
+ # the possible cost of increased memory usage.
+ #
+ #SpdyMaxThreadsPerProcess 30
+
+ # Memory usage can also be affected by the maximum number of
+ # simultaneously open SPDY streams permitted for each client
+ # connection. Ideally, this limit should be set as high as
+ # possible, but you can tweak it as necessary to limit memory
+ # consumption.
+ #
+ #SpdyMaxStreamsPerConnection 100
+</IfModule>
Added: httpd/httpd/trunk/modules/spdy/support/install/common/spdy.load.template
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/spdy.load.template?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/spdy.load.template (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/spdy.load.template Mon Apr 28 10:55:17 2014
@@ -0,0 +1 @@
+LoadModule spdy_module @@APACHE_MODULEDIR@@/mod_spdy.so
Added: httpd/httpd/trunk/modules/spdy/support/install/common/ssl.load.template
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/ssl.load.template?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/ssl.load.template (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/ssl.load.template Mon Apr 28 10:55:17 2014
@@ -0,0 +1,15 @@
+# This version of ssl.load was placed here because you installed mod_spdy.
+
+# Using mod_spdy requires using a patched version of mod_ssl that provides
+# hooks into the Next Protocol Negotiation (NPN) data from the SSL handshake.
+# Thus, the mod_spdy package installs mod_ssl_with_npn.so, which is exactly
+# mod_ssl but with the following (small) patch applied:
+# https://issues.apache.org/bugzilla/attachment.cgi?id=27969
+
+LoadModule ssl_module @@APACHE_MODULEDIR@@/mod_ssl_with_npn.so
+
+# If you'd like to go back to using the original, unpatched version of mod_ssl,
+# simply comment out the above line and uncomment the below line. However,
+# beware that mod_spdy will probably then cease to function.
+
+#LoadModule ssl_module @@APACHE_MODULEDIR@@/mod_ssl.so
Added: httpd/httpd/trunk/modules/spdy/support/install/common/updater
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/updater?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/updater (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/updater Mon Apr 28 10:55:17 2014
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# TODO
+# - handle other distros (e.g. non-apt).
+
+@@include@@apt.include
+
+if [ -x "$APT_GET" ]; then
+ update_sources_lists
+ # If the repo was just added, force a cache update.
+ if [ $? -eq 1 ]; then
+ install_key
+ "$APT_GET" -qq update
+ fi
+
+ # TODO(mmoss) detect if apt cache is stale (> 1 day) and force update?
+
+ # Just try to install the packge. If it's already installed, apt-get won't do
+ # anything.
+ "$APT_GET" install -y -q @@PACKAGE@@
+fi
+
Propchange: httpd/httpd/trunk/modules/spdy/support/install/common/updater
------------------------------------------------------------------------------
svn:executable = *
Added: httpd/httpd/trunk/modules/spdy/support/install/common/variables.include
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/common/variables.include?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/common/variables.include (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/common/variables.include Mon Apr 28 10:55:17 2014
@@ -0,0 +1,5 @@
+# System-wide package configuration.
+DEFAULTS_FILE="/etc/default/@@PACKAGE@@"
+
+# sources.list setting for @@PACKAGE@@ updates.
+REPOCONFIG="@@REPOCONFIG@@"
Added: httpd/httpd/trunk/modules/spdy/support/install/debian/build.sh
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/debian/build.sh?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/debian/build.sh (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/debian/build.sh Mon Apr 28 10:55:17 2014
@@ -0,0 +1,249 @@
+#!/bin/bash
+#
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+set -e
+if [ "$VERBOSE" ]; then
+ set -x
+fi
+set -u
+
+# Create the Debian changelog file needed by dpkg-gencontrol. This just adds a
+# placeholder change, indicating it is the result of an automatic build.
+gen_changelog() {
+ rm -f "${DEB_CHANGELOG}"
+ process_template "${SCRIPTDIR}/changelog.template" "${DEB_CHANGELOG}"
+ debchange -a --nomultimaint -m --changelog "${DEB_CHANGELOG}" \
+ --distribution UNRELEASED "automatic build"
+}
+
+# Create the Debian control file needed by dpkg-deb.
+gen_control() {
+ dpkg-gencontrol -v"${VERSIONFULL}" -c"${DEB_CONTROL}" -l"${DEB_CHANGELOG}" \
+ -f"${DEB_FILES}" -p"${PACKAGE}-${CHANNEL}" -P"${STAGEDIR}" -T"${DEB_SUBST}" \
+ -O > "${STAGEDIR}/DEBIAN/control"
+ rm -f "${DEB_CONTROL}"
+}
+
+# Create the Debian substvars file needed by dpkg-gencontrol.
+gen_substvars() {
+ # dpkg-shlibdeps requires a control file in debian/control, so we're
+ # forced to prepare a fake debian directory.
+ mkdir "${SUBSTFILEDIR}/debian"
+ cp "${DEB_CONTROL}" "${SUBSTFILEDIR}/debian"
+ pushd "${SUBSTFILEDIR}" >/dev/null
+ dpkg-shlibdeps "${STAGEDIR}${APACHE_MODULEDIR}/mod_spdy.so" \
+ -O >> "${DEB_SUBST}" 2>/dev/null
+ popd >/dev/null
+}
+
+# Setup the installation directory hierachy in the package staging area.
+prep_staging_debian() {
+ prep_staging_common
+ install -m 755 -d "${STAGEDIR}/DEBIAN" \
+ "${STAGEDIR}/etc/cron.daily"
+}
+
+# Put the package contents in the staging area.
+stage_install_debian() {
+ prep_staging_debian
+ stage_install_common
+ echo "Staging Debian install files in '${STAGEDIR}'..."
+ process_template "${BUILDDIR}/install/common/repo.cron" \
+ "${STAGEDIR}/etc/cron.daily/${PACKAGE}"
+ chmod 755 "${STAGEDIR}/etc/cron.daily/${PACKAGE}"
+ process_template "${BUILDDIR}/install/debian/preinst" \
+ "${STAGEDIR}/DEBIAN/preinst"
+ chmod 755 "${STAGEDIR}/DEBIAN/preinst"
+ process_template "${BUILDDIR}/install/debian/postinst" \
+ "${STAGEDIR}/DEBIAN/postinst"
+ chmod 755 "${STAGEDIR}/DEBIAN/postinst"
+ process_template "${BUILDDIR}/install/debian/prerm" \
+ "${STAGEDIR}/DEBIAN/prerm"
+ chmod 755 "${STAGEDIR}/DEBIAN/prerm"
+ process_template "${BUILDDIR}/install/debian/postrm" \
+ "${STAGEDIR}/DEBIAN/postrm"
+ chmod 755 "${STAGEDIR}/DEBIAN/postrm"
+ process_template "${BUILDDIR}/install/debian/conffiles.template" \
+ "${STAGEDIR}/DEBIAN/conffiles"
+ chmod 644 "${STAGEDIR}/DEBIAN/conffiles"
+ process_template "${BUILDDIR}/install/common/spdy.load.template" \
+ "${STAGEDIR}${APACHE_CONFDIR}/spdy.load"
+ chmod 644 "${STAGEDIR}${APACHE_CONFDIR}/spdy.load"
+ process_template "${BUILDDIR}/install/common/spdy.conf.template" \
+ "${STAGEDIR}${APACHE_CONFDIR}/spdy.conf"
+ chmod 644 "${STAGEDIR}${APACHE_CONFDIR}/spdy.conf"
+}
+
+# Build the deb file within a fakeroot.
+do_package_in_fakeroot() {
+ FAKEROOTFILE=$(mktemp -t fakeroot.tmp.XXXXXX) || exit 1
+ fakeroot -i "${FAKEROOTFILE}" -- \
+ dpkg-deb -b "${STAGEDIR}" .
+ rm -f "${FAKEROOTFILE}"
+}
+
+# Actually generate the package file.
+do_package() {
+ export HOST_ARCH="$1"
+ echo "Packaging ${HOST_ARCH}..."
+ PREDEPENDS="$COMMON_PREDEPS"
+ DEPENDS="${COMMON_DEPS}"
+ gen_changelog
+ process_template "${SCRIPTDIR}/control.template" "${DEB_CONTROL}"
+ export DEB_HOST_ARCH="${HOST_ARCH}"
+ gen_substvars
+ if [ -f "${DEB_CONTROL}" ]; then
+ gen_control
+ fi
+
+ do_package_in_fakeroot
+}
+
+# Remove temporary files and unwanted packaging output.
+cleanup() {
+ echo "Cleaning..."
+ rm -rf "${STAGEDIR}"
+ rm -rf "${TMPFILEDIR}"
+ rm -rf "${SUBSTFILEDIR}"
+}
+
+usage() {
+ echo "usage: $(basename $0) [-c channel] [-a target_arch] [-o 'dir'] [-b 'dir']"
+ echo "-c channel the package channel (unstable, beta, stable)"
+ echo "-a arch package architecture (ia32 or x64)"
+ echo "-o dir package output directory [${OUTPUTDIR}]"
+ echo "-b dir build input directory [${BUILDDIR}]"
+ echo "-h this help message"
+}
+
+# Check that the channel name is one of the allowable ones.
+verify_channel() {
+ case $CHANNEL in
+ stable )
+ CHANNEL=stable
+ ;;
+ unstable|dev|alpha )
+ CHANNEL=unstable
+ ;;
+ testing|beta )
+ CHANNEL=beta
+ ;;
+ * )
+ echo
+ echo "ERROR: '$CHANNEL' is not a valid channel type."
+ echo
+ exit 1
+ ;;
+ esac
+}
+
+process_opts() {
+ while getopts ":o:b:c:a:h" OPTNAME
+ do
+ case $OPTNAME in
+ o )
+ OUTPUTDIR="$OPTARG"
+ mkdir -p "${OUTPUTDIR}"
+ ;;
+ b )
+ BUILDDIR=$(readlink -f "${OPTARG}")
+ ;;
+ c )
+ CHANNEL="$OPTARG"
+ ;;
+ a )
+ TARGETARCH="$OPTARG"
+ ;;
+ h )
+ usage
+ exit 0
+ ;;
+ \: )
+ echo "'-$OPTARG' needs an argument."
+ usage
+ exit 1
+ ;;
+ * )
+ echo "invalid command-line option: $OPTARG"
+ usage
+ exit 1
+ ;;
+ esac
+ done
+}
+
+#=========
+# MAIN
+#=========
+
+SCRIPTDIR=$(readlink -f "$(dirname "$0")")
+OUTPUTDIR="${PWD}"
+STAGEDIR=$(mktemp -d -t deb.build.XXXXXX) || exit 1
+TMPFILEDIR=$(mktemp -d -t deb.tmp.XXXXXX) || exit 1
+SUBSTFILEDIR=$(mktemp -d -t deb.subst.XXXXXX) || exit 1
+DEB_CHANGELOG="${TMPFILEDIR}/changelog"
+DEB_FILES="${TMPFILEDIR}/files"
+DEB_CONTROL="${TMPFILEDIR}/control"
+DEB_SUBST="${SUBSTFILEDIR}/debian/substvars"
+CHANNEL="beta"
+# Default target architecture to same as build host.
+if [ "$(uname -m)" = "x86_64" ]; then
+ TARGETARCH="x64"
+else
+ TARGETARCH="ia32"
+fi
+
+# call cleanup() on exit
+trap cleanup 0
+process_opts "$@"
+if [ ! "$BUILDDIR" ]; then
+ BUILDDIR=$(readlink -f "${BUILDDIR}/install/../mod-spdy-release/src/out/Release")
+fi
+
+source ${BUILDDIR}/install/common/installer.include
+
+get_version_info
+VERSIONFULL="${VERSION}-r${REVISION}"
+
+source "${BUILDDIR}/install/common/mod-spdy.info"
+eval $(sed -e "s/^\([^=]\+\)=\(.*\)$/export \1='\2'/" \
+ "${BUILDDIR}/install/common/BRANDING")
+
+REPOCONFIG="deb http://dl.google.com/linux/${PACKAGE#google-}/deb/ stable main"
+verify_channel
+
+# Some Debian packaging tools want these set.
+export DEBFULLNAME="${MAINTNAME}"
+export DEBEMAIL="${MAINTMAIL}"
+
+# Make everything happen in the OUTPUTDIR.
+cd "${OUTPUTDIR}"
+
+COMMON_DEPS="apache2.2-common"
+COMMON_PREDEPS="dpkg (>= 1.14.0)"
+REPLACES=""
+
+APACHE_MODULEDIR="/usr/lib/apache2/modules"
+APACHE_CONFDIR="/etc/apache2/mods-available"
+APACHE_USER="www-data"
+COMMENT_OUT_DEFLATE=
+
+case "$TARGETARCH" in
+ ia32 )
+ stage_install_debian
+ do_package "i386"
+ ;;
+ x64 )
+ stage_install_debian
+ do_package "amd64"
+ ;;
+ * )
+ echo
+ echo "ERROR: Don't know how to build DEBs for '$TARGETARCH'."
+ echo
+ exit 1
+ ;;
+esac
Propchange: httpd/httpd/trunk/modules/spdy/support/install/debian/build.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/modules/spdy/support/install/debian/build.sh
------------------------------------------------------------------------------
svn:executable = *
Added: httpd/httpd/trunk/modules/spdy/support/install/debian/changelog.template
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/debian/changelog.template?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/debian/changelog.template (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/debian/changelog.template Mon Apr 28 10:55:17 2014
@@ -0,0 +1,4 @@
+@@PACKAGE@@-@@CHANNEL@@ (@@VERSIONFULL@@) UNRELEASED; urgency=low
+ * No changes
+
+ -- @@MAINTNAME@@ <@@MAINTMAIL@@> Wed, 20 Oct 2010 14:54:35 -0800
Added: httpd/httpd/trunk/modules/spdy/support/install/debian/conffiles.template
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/spdy/support/install/debian/conffiles.template?rev=1590597&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/spdy/support/install/debian/conffiles.template (added)
+++ httpd/httpd/trunk/modules/spdy/support/install/debian/conffiles.template Mon Apr 28 10:55:17 2014
@@ -0,0 +1,3 @@
+/etc/apache2/mods-available/spdy.load
+/etc/apache2/mods-available/spdy.conf
+/etc/cron.daily/@@PACKAGE@@