aboutsummaryrefslogtreecommitdiff
path: root/www/mod_pagespeed
diff options
context:
space:
mode:
authorMahdi Mokhtari <mmokhi@FreeBSD.org>2017-10-13 15:15:53 +0000
committerMahdi Mokhtari <mmokhi@FreeBSD.org>2017-10-13 15:15:53 +0000
commit60a05e200aee53d09a52a435c347c116c9675cbb (patch)
treea6dca46d87579ce2cfb16fac8d7d1d765f9a798c /www/mod_pagespeed
parentd70de080a6a84c0fc48c4b3f99800fec5d2bdedd (diff)
downloadports-60a05e200aee53d09a52a435c347c116c9675cbb.tar.gz
ports-60a05e200aee53d09a52a435c347c116c9675cbb.zip
www/mod_pagespeed: Add latest stable version to the tree
mod_pagespeed is an open-source Apache module that automatically optimizes web pages and resources on them by rewriting the resources using filters that implement web performance best practices. Reviewed by: mat (mentor) Approved by: mat (mentor) Sponsored by: Netzkommune GmbH Differential Revision: https://reviews.freebsd.org/D12616
Notes
Notes: svn path=/head/; revision=452011
Diffstat (limited to 'www/mod_pagespeed')
-rw-r--r--www/mod_pagespeed/Makefile206
-rw-r--r--www/mod_pagespeed/distinfo73
-rw-r--r--www/mod_pagespeed/files/patch-build_common.gypi27
-rw-r--r--www/mod_pagespeed/files/patch-build_pagespeed__overrides.gypi18
-rw-r--r--www/mod_pagespeed/files/patch-install_Makefile87
-rw-r--r--www/mod_pagespeed/files/patch-net_instaweb_closure.gypi11
-rw-r--r--www/mod_pagespeed/files/patch-net_instaweb_instaweb.gyp20
-rw-r--r--www/mod_pagespeed/files/patch-net_instaweb_mod__pagespeed.gypi15
-rw-r--r--www/mod_pagespeed/files/patch-net_instaweb_protoc.gypi41
-rw-r--r--www/mod_pagespeed/files/patch-net_instaweb_rewriter_image.cc10
-rw-r--r--www/mod_pagespeed/files/patch-pagespeed_kernel.gyp19
-rw-r--r--www/mod_pagespeed/files/patch-pagespeed_kernel_image_gif__reader.cc13
-rw-r--r--www/mod_pagespeed/files/patch-pagespeed_kernel_image_image__converter.cc10
-rw-r--r--www/mod_pagespeed/files/patch-pagespeed_kernel_image_png__optimizer__test.cc10
-rw-r--r--www/mod_pagespeed/files/patch-pagespeed_kernel_image_test__utils.cc13
-rw-r--r--www/mod_pagespeed/files/patch-pagespeed_kernel_image_webp__optimizer__test.cc11
-rw-r--r--www/mod_pagespeed/files/patch-pagespeed_opt.gyp18
-rw-r--r--www/mod_pagespeed/files/patch-pagespeed_system_system__rewrite__driver__factory.cc24
-rw-r--r--www/mod_pagespeed/files/patch-testing_gtest.gyp23
-rw-r--r--www/mod_pagespeed/files/patch-testing_gtest_include_gtest_gtest.h13
-rw-r--r--www/mod_pagespeed/files/patch-testing_gtest_include_gtest_internal_gtest-port.h10
-rw-r--r--www/mod_pagespeed/files/patch-third__party_apr_apr.gyp39
-rw-r--r--www/mod_pagespeed/files/patch-third__party_aprutil_aprutil.gyp39
-rw-r--r--www/mod_pagespeed/files/patch-third__party_chromium_src_base_debug_stack__trace__posix.cc23
-rw-r--r--www/mod_pagespeed/files/patch-third__party_chromium_src_base_profiler_alternate__timer.cc11
-rw-r--r--www/mod_pagespeed/files/patch-third__party_chromium_src_base_strings_string__util.h11
-rw-r--r--www/mod_pagespeed/files/patch-third__party_chromium_src_base_threading_platform__thread__linux.cc21
-rw-r--r--www/mod_pagespeed/files/patch-third__party_chromium_src_base_tracked__objects.cc11
-rw-r--r--www/mod_pagespeed/files/patch-third__party_chromium_src_build_common.gypi71
-rw-r--r--www/mod_pagespeed/files/patch-third__party_chromium_src_build_util_version.gypi13
-rw-r--r--www/mod_pagespeed/files/patch-third__party_closure_download.sh10
-rw-r--r--www/mod_pagespeed/files/patch-third__party_grpc_grpc.gyp50
-rw-r--r--www/mod_pagespeed/files/patch-third__party_grpc_src_binding.gyp103
-rw-r--r--www/mod_pagespeed/files/patch-third__party_grpc_src_include_grpc_impl_codegen_port__platform.h12
-rw-r--r--www/mod_pagespeed/files/patch-third__party_grpc_src_src_core_lib_tsi_ssl__transport__security.c10
-rw-r--r--www/mod_pagespeed/files/patch-third__party_grpc_src_templates_binding.gyp.template76
-rw-r--r--www/mod_pagespeed/files/patch-third__party_httpd_httpd.gyp22
-rw-r--r--www/mod_pagespeed/files/patch-third__party_libjpeg__turbo_libjpeg__turbo.gyp15
-rw-r--r--www/mod_pagespeed/files/patch-third__party_libpng_libpng.gyp29
-rw-r--r--www/mod_pagespeed/files/patch-third__party_protobuf_protobuf.gyp72
-rw-r--r--www/mod_pagespeed/files/patch-third__party_re2_src_util_benchmark.cc10
-rw-r--r--www/mod_pagespeed/files/patch-third__party_serf_select__openssl.gyp15
-rw-r--r--www/mod_pagespeed/files/patch-url_url__canon__icu.cc20
-rw-r--r--www/mod_pagespeed/pkg-descr7
-rw-r--r--www/mod_pagespeed/pkg-plist9
45 files changed, 1371 insertions, 0 deletions
diff --git a/www/mod_pagespeed/Makefile b/www/mod_pagespeed/Makefile
new file mode 100644
index 000000000000..c387edc5ad93
--- /dev/null
+++ b/www/mod_pagespeed/Makefile
@@ -0,0 +1,206 @@
+# $FreeBSD$
+
+PORTNAME= mod_pagespeed
+PORTVERSION= 1.12.34.2
+PORTEPOCH= 1
+CATEGORIES= www devel
+MASTER_SITES= https://boringssl.googlesource.com/boringssl.git/+archive/:boringssl \
+ https://chromium.googlesource.com/chromium/src/base/+archive/:chromium_base \
+ https://chromium.googlesource.com/chromium/src/build/+archive/:chromium_build \
+ https://chromium.googlesource.com/external/google-url/+archive/:googleurl \
+ https://chromium.googlesource.com/external/webrtc/trunk/third_party/gflags/+archive/master.tar.gz?dummy=/:gflags_arch \
+ https://chromium.googlesource.com/external/gflags/src/+archive/master.tar.gz?dummy=/:gflags_src \
+ https://chromium.googlesource.com/chromium/deps/libjpeg_turbo/+archive/:libjpeg_turbo_src \
+ https://chromium.googlesource.com/chromium/deps/yasm/patched-yasm/+archive/:yasm_patched \
+ https://chromium.googlesource.com/webm/libwebp/+archive/:libwebp \
+ https://chromium.googlesource.com/chromium/src/third_party/modp_b64/+archive/:modpb64 \
+ https://dl.google.com/closure-compiler/:closurezip
+DISTFILES= ${NON_GH_DISTS}
+
+MAINTAINER= mmokhi@FreeBSD.org
+COMMENT= Apache module for rewriting web pages to reduce latency
+
+LICENSE= APACHE20
+
+BUILD_DEPENDS= bash:shells/bash \
+ curl:ftp/curl \
+ closure-compiler:www/closure-compiler \
+ greadlink:sysutils/coreutils \
+ gsed:textproc/gsed \
+ gyp:devel/py-gyp \
+ flock:sysutils/flock \
+ ${LOCALBASE}/include/apr-1/apr_pools.h:devel/apr1
+LIB_DEPENDS= libpng.so:graphics/png \
+ libprotobuf.so:devel/protobuf \
+ libgrpc.so:devel/grpc \
+ libapr-1.so:devel/apr1 \
+ libaprutil-1.so:devel/apr1 \
+ libexpat.so:textproc/expat2 \
+ libicutu.so:devel/icu \
+ libopencv_legacy.so:graphics/opencv
+
+USES= compiler:c++14-lang jpeg gmake localbase pkgconfig \
+ python shebangfix ssl tar:xz
+USE_APACHE= 22
+SHEBANG_GLOB= *.gyp *.gypi *.py *.sh
+SHEBANG_FILES= build/fix_proto_and_invoke_protoc
+
+WRKSRC= ${WRKSRC_maindist}
+DOCSDIR= ${PREFIX}/share/doc/apache${APACHE_VERSION}
+CACHEDIR= /var/cache/mod_pagespeed
+LOGSDIR= /var/log/pagespeed
+CFLAGS+= -I${LOCALBASE}/include -I${LOCALBASE}/include/apr-1 -I${WRKSRC} \
+ -Wno-error -Wno-deprecated-register -Wno-char-subscripts \
+ -frtti -fexceptions -fPIC
+BUILDTYPE= Release
+MAKE_ENV+= BUILDTYPE=${BUILDTYPE}
+CLR_VERSION= 20161024
+GYP_DEFINES+= os_posix=1 \
+ use_system_libs=1 \
+ use_system_protobuf=1 \
+ use_system_openssl=1 \
+ use_system_apache_dev=1 \
+ use_system_libjpeg=1 \
+ use_system_libpng=1 \
+ use_system_zlib=1 \
+ use_system_icu=1 \
+ use_system_yasm=1 \
+ use_system_libxml=1 \
+ use_system_sqlite=1 \
+ use_system_opencv=1 \
+ use_system_fontconfig=1 \
+ target_arch=${ARCH} \
+ system_include_path_apr=${LOCALBASE}/include/apr-1 \
+ system_include_path_aprutil=${LOCALBASE}/include/apr-1 \
+ system_include_path_httpd=${LOCALBASE}/include/apache22 \
+ system_include_path_execinfo=${LOCALBASE}/include \
+ system_include_path_icu=${LOCALBASE}/include \
+ include_dirs=${LOCALBASE}/include \
+ python_ver=${PYTHON_VER} \
+ fastbuild=2
+NON_GH_DISTS= version_for_cocoapods_6.0-46-g07e78061.tar.gz:boringssl \
+ ccf3c2f32.tar.gz:chromium_base \
+ 06b7bd9c.tar.gz:chromium_build \
+ 405b6e1.tar.gz:googleurl \
+ gflags-master.tar.gz:gflags_arch \
+ src-master.tar.gz:gflags_src \
+ 7260e4d.tar.gz:libjpeg_turbo_src \
+ 7da28c6.tar.gz:yasm_patched \
+ v0.5.1.tar.gz:libwebp \
+ aae6075.tar.gz:modpb64 \
+ compiler-${CLR_VERSION}.zip:closurezip
+WRKSRC_boringssl= ${WRKSRC}/third_party/boringssl/src
+WRKSRC_chromium_base= ${WRKSRC}/third_party/chromium/src/base
+WRKSRC_chromium_build= ${WRKSRC}/third_party/chromium/src/build
+WRKSRC_googleurl= ${WRKSRC}/third_party/chromium/src/googleurl
+WRKSRC_gflags_arch= ${WRKSRC}/third_party/gflags/arch
+WRKSRC_gflags_src= ${WRKSRC}/third_party/gflags/src
+WRKSRC_libjpeg_turbo_src= ${WRKSRC}/third_party/libjpeg_turbo/src
+WRKSRC_yasm_patched= ${WRKSRC}/third_party/libjpeg_turbo/yasm/source/patched-yasm
+WRKSRC_libwebp= ${WRKSRC}/third_party/libwebp
+WRKSRC_modpb64= ${WRKSRC}/third_party/modp_b64
+WRKSRC_closurezip= ${WRKSRC}/tools/closure
+
+.for _group in ${_GITHUB_GROUPS:NDEFAULT}
+EXTRACT_ONLY:= ${EXTRACT_ONLY} ${DISTFILE_${_group}}:${_group}
+.endfor
+
+#grpc changed from objective-c-v1.0.0-pre1-254-g2a69139aa7 to v1.6.0
+USE_GITHUB= nodefault
+GH_ACCOUNT= pagespeed
+GH_TUPLE= pagespeed:mod_pagespeed:a5cfe15:maindist \
+ google:googlemock:release-1.7.0:gmock/testing/gmock \
+ google:googletest:release-1.7.0:gtest/testing/gtest \
+ apache:apr:1.5.1:apr/third_party/apr/src \
+ apache:apr-util:1.5.4:aprutil/third_party/aprutil/src \
+ google:brotli:v0.4.0-89-g882f418:brotli/third_party/brotli/src \
+ google:closure-library:v20161024:closurelib/third_party/closure_library \
+ pagespeed:domain-registry-provider:e9b72ea:domain_registry_provider/third_party/domain_registry_provider \
+ pagespeed:giflib:99deb45:giflib/third_party/giflib \
+ google:sparsehash:sparsehash-1.7:sparsehash/third_party/google-sparsehash/src \
+ grpc:grpc:objective-c-v1.0.0-pre1-254-g2a69139aa7:grpc/third_party/grpc/src \
+ redis:hiredis:v0.13.3:hiredis/third_party/hiredis/src \
+ apache:httpd:2.2.29:httpd/third_party/httpd/src \
+ apache:httpd:2.4.10:httpd24/third_party/httpd24/src \
+ pagespeed:icu:1b32282:icu/third_party/icu \
+ open-source-parsers:jsoncpp:1.0.0:jsoncpp/third_party/jsoncpp/src \
+ glennrp:libpng:libpng-1.2.56-signed:libpng/third_party/libpng/src \
+ pagespeed:mod_fcgid:c63f176:mod__fcgid/third_party/mod_fcgid \
+ nghttp2:nghttp2:v1.16.0-24-gf4474d57:nghttp2/third_party/nghttp2 \
+ pagespeed:optipng:e9a5bd6:optipng/third_party/optipng \
+ google:protobuf:v3.0.0-beta-4-74-ge8ae137c:protobuf/third_party/protobuf/src \
+ google:re2:2016-09-01:re2/third_party/re2/src \
+ apache:serf:1.3.8:serf/third_party/serf/src \
+ pagespeed:zlib:1f93ffd:zlib/third_party/zlib \
+ nanopb:nanopb:f8ac463:grpcnanopb/third_party/grpc/src/third_party/nanopb
+
+post-extract:
+. for _D in ${NON_GH_DISTS}
+ DGROUP=${_D:S/^${_D:C/:[^:]+$//}//:S/^://}
+ DFILE=${_D:C/:[^-:][^:]*$//}
+ ${MKDIR} ${WRKSRC_${_D:S/^${_D:C/:[^:]+$//}//:S/^://}} && cd ${EXTRACT_WRKDIR} && \
+ ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${DISTDIR}/${_D:C/:[^-:][^:]*$//} \
+ ${EXTRACT_AFTER_ARGS} -C ${WRKSRC_${_D:S/^${_D:C/:[^:]+$//}//:S/^://}}
+. endfor
+ ${CP} ${DISTDIR}/compiler-${CLR_VERSION}.zip ${WRKSRC_closurezip}
+
+post-patch:
+ ( cd ${BUILD_WRKSRC}/third_party/google-sparsehash/gen/arch && \
+ ${CP} -R linux freebsd && \
+ cd ${BUILD_WRKSRC}/third_party/google-sparsehash/gen/arch/freebsd && \
+ ${MV} ia32 i386 && ${MV} x64 amd64 )
+ ${REINPLACE_CMD} -e "s,%%LOCALBASE%%,${LOCALBASE},g" \
+ ${WRKSRC}/base/base.gypi
+ ${REINPLACE_CMD} -e "s,%%PORTSSTAGE%%,${STAGEDIR},g" \
+ ${WRKSRC}/install/Makefile
+ ${FIND} ${WRKSRC} -type f \( -name "*.gyp" -o -name "*.gypi" \) -exec \
+ ${REINPLACE_CMD} -e "s/'python'/'${PYTHON_VERSION}'/g" {} \;
+
+do-configure:
+ cd ${WRKSRC} && \
+ GYP_DEFINES="${GYP_DEFINES}" CC=${CC} CXX=${CXX} \
+ ${PYTHON_CMD} build/gyp_chromium --depth=.
+
+do-build:
+ cd ${WRKSRC} && \
+ ${GMAKE} ${MAKE_ENV} builddir=${WRKSRC}/${BUILDTYPE} \
+ CFLAGS_${BUILDTYPE}="${CFLAGS}" CXXFLAGS_${BUILDTYPE}="${CFLAGS}" \
+ AR.host=/usr/bin/ar AR.target=/usr/bin/ar CC.host=${CC} CC.target=${CC} \
+ CXX.host=${CXX} CXX.target=${CXX} BUILDTYPE=${BUILDTYPE}
+
+do-install:
+ cd ${WRKSRC}/install && ${MKDIR} FreeBSD && \
+ echo ' \
+ APACHE_ROOT=${PREFIX} \
+ APACHE_MODULES=${PREFIX}/${APACHEMODDIR} \
+ APACHE_CONF_DIR=${PREFIX}/${APACHEETCDIR} \
+ APACHE_DOC_ROOT=${DOCSDIR} \
+ APACHE_CONTROL_PROGRAM=${HTTPD} \
+ APACHE_PROGRAM=apache${APACHE_VERSION} \
+ APACHE_START="service apache22 start" \
+ APACHE_PIDFILE="/var/run/httpd.pid" \
+ APACHE_USER=www \
+ DISTRO_NAME=FreeBSD' > FreeBSD/make_vars.mk && \
+ ${MKDIR} ${STAGEDIR}${PREFIX}/${APACHEMODDIR} && \
+ ${MKDIR} ${STAGEDIR}${PREFIX}/${APACHEETCDIR} && \
+ ${MKDIR} ${STAGEDIR}${DOCSDIR} && \
+ ${GMAKE} ${MAKE_ENV} V=1 builddir=${WRKSRC}/${BUILDTYPE} \
+ CFLAGS_${BUILDTYPE}="${CFLAGS}" CXXFLAGS_${BUILDTYPE}="${CFLAGS}" \
+ AR.host=/usr/bin/ar AR.target=/usr/bin/ar CC.host=${CC} CC.target=${CC} \
+ CXX.host=${CXX} CXX.target=${CXX} BUILDTYPE=${BUILDTYPE} \
+ APACHE_ROOT=${PREFIX} BINDIR=${PREFIX}/bin \
+ APACHE_MODULES=${PREFIX}/${APACHEMODDIR} \
+ APACHE_CONF_DIR=${PREFIX}/${APACHEETCDIR} \
+ APACHE_DOC_ROOT=${DOCSDIR} \
+ APACHE_CONTROL_PROGRAM=${HTTPD} APACHE_PROGRAM=apache${APACHE_VERSION} \
+ APACHE_START="service apache22 start" APACHE_PIDFILE="/var/run/httpd.pid" \
+ APACHE_USER=www DISTRO_NAME=FreeBSD MOD_PAGESPEED_ROOT=${WRKSRC} \
+ PAGESPEED_MODULE=${WRKSRC}/Release/libmod_pagespeed.so \
+ PAGESPEED_MODULE_24=${WRKSRC}/Release/libmod_pagespeed_ap24.so \
+ PAGESPEED_JS_MINIFY=${WRKSRC}/Release/js_minify \
+ MOD_PAGESPEED_CACHE=${CACHEDIR} \
+ MOD_PAGESPEED_LOG=${LOGSDIR} staging install
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${APACHEMODDIR}/*
+
+.include <bsd.port.mk>
diff --git a/www/mod_pagespeed/distinfo b/www/mod_pagespeed/distinfo
new file mode 100644
index 000000000000..225a8277aa98
--- /dev/null
+++ b/www/mod_pagespeed/distinfo
@@ -0,0 +1,73 @@
+TIMESTAMP = 1507800856
+SHA256 (version_for_cocoapods_6.0-46-g07e78061.tar.gz) = 6c50ceddabb772eeb8b5c9500dd55946b2f83114b7898616e06fdcb8df16f1ab
+SIZE (version_for_cocoapods_6.0-46-g07e78061.tar.gz) = 5013132
+SHA256 (ccf3c2f32.tar.gz) = f0dcafe0acd3b8698f92eb89b1e3a99d0fee8ec59d2d5c9d2d884b61643d9c79
+SIZE (ccf3c2f32.tar.gz) = 1774127
+SHA256 (06b7bd9c.tar.gz) = b1d461691f86275a74951bfe76d8b891efe74b7b46d9107fcbdd513c85ffb1ad
+SIZE (06b7bd9c.tar.gz) = 516641
+SHA256 (405b6e1.tar.gz) = 9c91f5f6a5322b444742a9fa4e1b31c7ae9476614a560fc85a66f1eb8ebcd5f2
+SIZE (405b6e1.tar.gz) = 144796
+SHA256 (gflags-master.tar.gz) = 6f138e564f00f05e907c60d308d6cf6605a999ca4c917b8d7b08780053ccca17
+SIZE (gflags-master.tar.gz) = 25807
+SHA256 (src-master.tar.gz) = d0395cf9a8f99b8f5cf12e0d1b0f60daa0ac990e4712a8e36b096071bdff15b6
+SIZE (src-master.tar.gz) = 80424
+SHA256 (7260e4d.tar.gz) = 0e1f94297e49c2883d126e42be140cd3f44b1ff67280f940fc2df4d264990d00
+SIZE (7260e4d.tar.gz) = 783597
+SHA256 (7da28c6.tar.gz) = 9285ea6d90e5a2b2a1f99164d8e299926f3e162a1ea8267712bf652f4a0dd2f9
+SIZE (7da28c6.tar.gz) = 1438904
+SHA256 (v0.5.1.tar.gz) = 02e67658b6c24c5566e08ebd3b5c5c2768065a8acb059f95c952ce4decaa4e21
+SIZE (v0.5.1.tar.gz) = 799999
+SHA256 (aae6075.tar.gz) = 6c27fb822304e8e6681d37bb534b0f20717c00eed343151b755e23da486a181f
+SIZE (aae6075.tar.gz) = 7882
+SHA256 (compiler-20161024.zip) = c96431bc4d3d791292741e18e52ef8b845d3a66f5e8c6d26e565f224b55fa6eb
+SIZE (compiler-20161024.zip) = 6365190
+SHA256 (pagespeed-mod_pagespeed-a5cfe15_GH0.tar.gz) = 9a76b29372283169942b33d07b724dadb854e3218982ff37df3ee5a14cfc9e3c
+SIZE (pagespeed-mod_pagespeed-a5cfe15_GH0.tar.gz) = 13046590
+SHA256 (google-googlemock-release-1.7.0_GH0.tar.gz) = 3f20b6acb37e5a98e8c4518165711e3e35d47deb6cdb5a4dd4566563b5efd232
+SIZE (google-googlemock-release-1.7.0_GH0.tar.gz) = 296168
+SHA256 (google-googletest-release-1.7.0_GH0.tar.gz) = f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc
+SIZE (google-googletest-release-1.7.0_GH0.tar.gz) = 468653
+SHA256 (apache-apr-1.5.1_GH0.tar.gz) = c7ae128ef3af7651575da746dc27aeb56d120c6b8ced86e8d4e11590efda03cd
+SIZE (apache-apr-1.5.1_GH0.tar.gz) = 715270
+SHA256 (apache-apr-util-1.5.4_GH0.tar.gz) = f5997456f93f83cb4d6ddff97279fba0b178bdf181199a3698aa77ffbe8a4c83
+SIZE (apache-apr-util-1.5.4_GH0.tar.gz) = 516830
+SHA256 (google-brotli-v0.4.0-89-g882f418_GH0.tar.gz) = 7e3efeb6805a7683f8d2bfa4b7c1acc55a00957bdaf28db1abcca343cfacd113
+SIZE (google-brotli-v0.4.0-89-g882f418_GH0.tar.gz) = 7973634
+SHA256 (google-closure-library-v20161024_GH0.tar.gz) = 9dc8bc37e1f882fe90fe09807f6710ddb52eeae2d51755c92564c8b91000cf97
+SIZE (google-closure-library-v20161024_GH0.tar.gz) = 4514004
+SHA256 (pagespeed-domain-registry-provider-e9b72ea_GH0.tar.gz) = 4cbfdcbf350d85149c425a7921dd1408c443b3352c1b0c0da49fe4d07ca2f1b6
+SIZE (pagespeed-domain-registry-provider-e9b72ea_GH0.tar.gz) = 88106
+SHA256 (pagespeed-giflib-99deb45_GH0.tar.gz) = 915103d1c37a2c7cd7d9f2c452ee7106210641d4dcddb2b8db2001acebd067fb
+SIZE (pagespeed-giflib-99deb45_GH0.tar.gz) = 631625
+SHA256 (google-sparsehash-sparsehash-1.7_GH0.tar.gz) = 444cc07adf7dd1dc6f6a48946533d2168f52b73de0414a263c80b44e1d49f4ea
+SIZE (google-sparsehash-sparsehash-1.7_GH0.tar.gz) = 312006
+SHA256 (grpc-grpc-objective-c-v1.0.0-pre1-254-g2a69139aa7_GH0.tar.gz) = 647d857349b6c81339035eb14452e8ccb11ebd8e435a89af257dbd331d83caf3
+SIZE (grpc-grpc-objective-c-v1.0.0-pre1-254-g2a69139aa7_GH0.tar.gz) = 3353874
+SHA256 (redis-hiredis-v0.13.3_GH0.tar.gz) = 717e6fc8dc2819bef522deaca516de9e51b9dfa68fe393b7db5c3b6079196f78
+SIZE (redis-hiredis-v0.13.3_GH0.tar.gz) = 58291
+SHA256 (apache-httpd-2.2.29_GH0.tar.gz) = afce3100fdb6c214299884b65fb74666851ff997a276f2f93f326bbdb9010a61
+SIZE (apache-httpd-2.2.29_GH0.tar.gz) = 7303889
+SHA256 (apache-httpd-2.4.10_GH0.tar.gz) = 91d0cfd201df2b4a718b01fa192edfd7fa7045178dc3d8af6c0899dd04758ec7
+SIZE (apache-httpd-2.4.10_GH0.tar.gz) = 9501071
+SHA256 (pagespeed-icu-1b32282_GH0.tar.gz) = d45811de8d73a8cb3c56c25d4efb30b98b625d12a5f645e98c4edb7263ada659
+SIZE (pagespeed-icu-1b32282_GH0.tar.gz) = 3240104
+SHA256 (open-source-parsers-jsoncpp-1.0.0_GH0.tar.gz) = e7eeb9b96d10cfd2f6205a09899f9800931648f652e09731821854c9ce0c7a1a
+SIZE (open-source-parsers-jsoncpp-1.0.0_GH0.tar.gz) = 165343
+SHA256 (glennrp-libpng-libpng-1.2.56-signed_GH0.tar.gz) = b187e24e4e6f2181d3e9669f2f1d177b042a5302cdb9292fb7fe4e25040cd35d
+SIZE (glennrp-libpng-libpng-1.2.56-signed_GH0.tar.gz) = 872865
+SHA256 (pagespeed-mod_fcgid-c63f176_GH0.tar.gz) = e47e6687eaba4537742cfeacc9461e5fe6b0f185c724489e5530778da8efcb61
+SIZE (pagespeed-mod_fcgid-c63f176_GH0.tar.gz) = 105890
+SHA256 (nghttp2-nghttp2-v1.16.0-24-gf4474d57_GH0.tar.gz) = baa97c794a8cace04751b3dc4960120c14cc9c9b6405355ca7d7f945ef33f47c
+SIZE (nghttp2-nghttp2-v1.16.0-24-gf4474d57_GH0.tar.gz) = 1694719
+SHA256 (pagespeed-optipng-e9a5bd6_GH0.tar.gz) = c69522c3c3c37e4236c42100a5b62145ab0380b49a1d70a8592d681bbbd273ff
+SIZE (pagespeed-optipng-e9a5bd6_GH0.tar.gz) = 49657
+SHA256 (google-protobuf-v3.0.0-beta-4-74-ge8ae137c_GH0.tar.gz) = ef342360dc795db0cd76cc3d06d5e7e8af4035eef11e083e5ba203c3021c391e
+SIZE (google-protobuf-v3.0.0-beta-4-74-ge8ae137c_GH0.tar.gz) = 3902997
+SHA256 (google-re2-2016-09-01_GH0.tar.gz) = 4f5833331c5d6e3bc0465984cff6f75ed9360e1ea1db670716161b98564cda2a
+SIZE (google-re2-2016-09-01_GH0.tar.gz) = 380572
+SHA256 (apache-serf-1.3.8_GH0.tar.gz) = 0f07e33a99f308af4e115b25cab21a331f9b375fd29549c7b2607c1a56b83fcb
+SIZE (apache-serf-1.3.8_GH0.tar.gz) = 186709
+SHA256 (pagespeed-zlib-1f93ffd_GH0.tar.gz) = ec7f3715e773921353a038e4355eedec23eb3c8ed55a84b842f3ae1da1599f27
+SIZE (pagespeed-zlib-1f93ffd_GH0.tar.gz) = 567080
+SHA256 (nanopb-nanopb-f8ac463_GH0.tar.gz) = 57992a05c0f0760a41073b08cb66c5d6987e25631a09d9e0877502a3a91b2655
+SIZE (nanopb-nanopb-f8ac463_GH0.tar.gz) = 223064
diff --git a/www/mod_pagespeed/files/patch-build_common.gypi b/www/mod_pagespeed/files/patch-build_common.gypi
new file mode 100644
index 000000000000..cbc818b1f79c
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-build_common.gypi
@@ -0,0 +1,27 @@
+--- build/common.gypi.orig 2017-10-06 23:46:24 UTC
++++ build/common.gypi
+@@ -44,7 +44,7 @@
+ # way for our users to change the compiler (since gclient gets in
+ # the way of tweaking gyp flags directly).
+ 'clang_version':
+- '<!(python <(DEPTH)/build/clang_version.py)',
++ '<!(python2.7 <(DEPTH)/build/clang_version.py)',
+
+ 'conditions': [
+ # TODO(morlovich): AIX, Solaris, FreeBSD10?
+@@ -131,6 +131,15 @@
+ # libraries.
+ 'ldflags!': [
+ '-Wl,-z,defs',
++ '-zdefs',
++ ],
++ 'cflags!': [
++ '-Wl,-z,defs',
++ '-zdefs',
++ ],
++ 'cflags_cc!': [
++ '-Wl,-z,defs',
++ '-zdefs',
+ ],
+ }],
+ ['OS == "mac"', {
diff --git a/www/mod_pagespeed/files/patch-build_pagespeed__overrides.gypi b/www/mod_pagespeed/files/patch-build_pagespeed__overrides.gypi
new file mode 100644
index 000000000000..b7f59fc4075c
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-build_pagespeed__overrides.gypi
@@ -0,0 +1,18 @@
+--- build/pagespeed_overrides.gypi.orig 2017-10-06 11:59:51 UTC
++++ build/pagespeed_overrides.gypi
+@@ -90,14 +90,13 @@
+ ],
+ },
+ }],
+ ['os_posix==1 and OS!="mac"', {
+ 'target_defaults': {
+ 'ldflags': [
+- # Fail to link if there are any undefined symbols.
+- '-Wl,-z,defs',
++ '-Wl,-z,lazy',
+ ],
+ }
+ }],
+ ['OS=="mac"', {
+ 'target_defaults': {
+ 'xcode_settings': {
diff --git a/www/mod_pagespeed/files/patch-install_Makefile b/www/mod_pagespeed/files/patch-install_Makefile
new file mode 100644
index 000000000000..f6ba7c3e1068
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-install_Makefile
@@ -0,0 +1,87 @@
+--- install/Makefile.orig 2017-06-08 22:22:39 UTC
++++ install/Makefile
+@@ -163,7 +163,7 @@ CONF_SOURCES = $(STAGING_DIR)/pagespeed.
+
+ MODS_ENABLED_INSTALL_COMMANDS = \
+ cp -f $(STAGING_DIR)/pagespeed_libraries.conf \
+- $(APACHE_CONF_DIR)/pagespeed_libraries.conf
++ %%PORTSSTAGE%%$(APACHE_CONF_DIR)/pagespeed_libraries.conf.sample
+
+ else
+
+@@ -172,7 +172,7 @@ else
+ # independently.
+ MODS_ENABLED_INSTALL_COMMANDS = \
+ for file in pagespeed.load pagespeed_libraries.conf; do \
+- cp -f $(STAGING_DIR)/$$file $(MODS_AVAILABLE_DIR) ; \
++ cp -f $(STAGING_DIR)/$$file %%PORTSSTAGE%%$(MODS_AVAILABLE_DIR) ; \
+ cd $(MODS_ENABLED_DIR) && ln -sf ../mods-available/$$file ; \
+ done; \
+ rm -f $(MODS_ENABLED_DIR)/headers.load ; \
+@@ -298,40 +298,34 @@ staging_except_module : setup_staging_di
+ cp -f $(LIBRARY_CONF_SOURCE) $(STAGING_DIR)/pagespeed_libraries.conf
+ $(MODS_ENABLED_STAGING_COMMANDS)
+ cp -rp mod_pagespeed_example mod_pagespeed_test $(STAGING_DIR)
+- @echo Changing security context of $(APACHE_DOC_ROOT)
+- @echo This will fail and be ignored if your selinux isn\'t set up.
+- -chcon -R --reference=$(APACHE_DOC_ROOT) $(STAGING_DIR)
+
+ staging : staging_except_module
+- cp $(PAGESPEED_MODULE) $(STAGING_DIR)/mod_pagespeed.so
+- cp $(PAGESPEED_MODULE_24) $(STAGING_DIR)/mod_pagespeed_ap24.so
+- cp $(PAGESPEED_JS_MINIFY) $(STAGING_DIR)/pagespeed_js_minify
++ if [ -x $(PAGESPEED_MODULE) ]; then cp $(PAGESPEED_MODULE) $(STAGING_DIR)/mod_pagespeed.so; fi
++ if [ -x $(PAGESPEED_MODULE_24) ]; then cp $(PAGESPEED_MODULE_24) $(STAGING_DIR)/mod_pagespeed_ap24.so; fi
++ if [ -x $(PAGESPEED_JS_MINIFY) ]; then cp $(PAGESPEED_JS_MINIFY) $(STAGING_DIR)/pagespeed_js_minify; fi
+
+ install_except_module : mod_pagespeed_file_root
+ $(MODS_ENABLED_INSTALL_COMMANDS)
+- cat $(CONF_SOURCES) > $(APACHE_CONF_DIR)/pagespeed.conf
+- ln -Tsf $(STAGING_DIR)/mod_pagespeed_example \
+- $(APACHE_DOC_ROOT)/mod_pagespeed_example
+- ln -Tsf $(STAGING_DIR)/mod_pagespeed_test \
+- $(APACHE_DOC_ROOT)/mod_pagespeed_test
++ cat $(CONF_SOURCES) > %%PORTSSTAGE%%$(APACHE_CONF_DIR)/pagespeed.conf.sample
++ ln -sf $(STAGING_DIR)/mod_pagespeed_example \
++ %%PORTSSTAGE%%$(APACHE_DOC_ROOT)/mod_pagespeed_example
++ ln -sf $(STAGING_DIR)/mod_pagespeed_test \
++ %%PORTSSTAGE%%$(APACHE_DOC_ROOT)/mod_pagespeed_test
+
+ # To install the mod_pagespeed configuration into the system, you must
+ # run this as root, or under sudo.
+ install : install_except_module
+- cp $(STAGING_DIR)/mod_pagespeed.so $(APACHE_MODULES)
+- cp $(STAGING_DIR)/mod_pagespeed_ap24.so $(APACHE_MODULES)
+- cp $(STAGING_DIR)/pagespeed_js_minify $(BINDIR)
++ if [ -x $(PAGESPEED_MODULE) ]; then cp $(STAGING_DIR)/mod_pagespeed.so %%PORTSSTAGE%%$(APACHE_MODULES); fi
++ if [ -x $(PAGESPEED_MODULE_24) ]; then cp $(STAGING_DIR)/mod_pagespeed_ap24.so %%PORTSSTAGE%%$(APACHE_MODULES); fi
++ if [ -x $(PAGESPEED_JS_MINIFY) ]; then cp $(STAGING_DIR)/pagespeed_js_minify %%PORTSSTAGE%%$(BINDIR); fi
+
+ mod_pagespeed_file_root :
+- mkdir -p $(MOD_PAGESPEED_CACHE)
+- chown -R $(APACHE_USER) $(MOD_PAGESPEED_CACHE)
+-
+- mkdir -p $(MOD_PAGESPEED_CACHE)-alt
+- chown -R $(APACHE_USER) $(MOD_PAGESPEED_CACHE)-alt
+-
+- mkdir -p $(MOD_PAGESPEED_LOG)
+- chown -R $(APACHE_USER) $(MOD_PAGESPEED_LOG)
+-
++ mkdir -p %%PORTSSTAGE%%$(MOD_PAGESPEED_CACHE)
++
++ mkdir -p %%PORTSSTAGE%%$(MOD_PAGESPEED_CACHE)-alt
++
++ mkdir -p %%PORTSSTAGE%%$(MOD_PAGESPEED_LOG)
++
+ flush_disk_cache :
+ rm -rf $(MOD_PAGESPEED_CACHE)
+ $(MAKE) MOD_PAGESPEED_CACHE=$(MOD_PAGESPEED_CACHE) \
+@@ -419,8 +413,6 @@ enable_ports_and_file_access :
+ $(MOD_PAGESPEED_CACHE)-alt \
+ $(MOD_PAGESPEED_LOG) ; do \
+ sudo mkdir -p $$dir; \
+- sudo chown $(APACHE_USER) $$dir; \
+- sudo chcon -R --reference=$(APACHE_DOC_ROOT) $$dir || true; \
+ done; \
+ /usr/sbin/setsebool httpd_can_network_connect on; \
+ fi
diff --git a/www/mod_pagespeed/files/patch-net_instaweb_closure.gypi b/www/mod_pagespeed/files/patch-net_instaweb_closure.gypi
new file mode 100644
index 000000000000..da6a9f20326f
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-net_instaweb_closure.gypi
@@ -0,0 +1,11 @@
+--- net/instaweb/closure.gypi.orig 2017-10-07 00:18:23 UTC
++++ net/instaweb/closure.gypi
+@@ -74,7 +74,7 @@
+ ],
+ }],
+ ['js_includes != ""', {
+- 'closure_flags': ['<!@(python -c "print \' \'.join([\'--js \' + js for js in \'<(js_includes)\'.split()]) ")'],
++ 'closure_flags': ['<!@(python2.7 -c "print \' \'.join([\'--js \' + js for js in \'<(js_includes)\'.split()]) ")'],
+ }],
+ ['"<!(echo $BUILD_JS)" != "1"', {
+ 'action': [
diff --git a/www/mod_pagespeed/files/patch-net_instaweb_instaweb.gyp b/www/mod_pagespeed/files/patch-net_instaweb_instaweb.gyp
new file mode 100644
index 000000000000..c4132ef9ac24
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-net_instaweb_instaweb.gyp
@@ -0,0 +1,20 @@
+--- net/instaweb/instaweb.gyp.orig 2017-06-08 22:22:39 UTC
++++ net/instaweb/instaweb.gyp
+@@ -34,9 +34,14 @@
+ {
+ 'variables': {
+ 'instaweb_root': '../..',
+- 'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out/instaweb',
+- 'protoc_executable':
+- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
++ 'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out/instaweb',
++ 'conditions': [
++ ['use_system_protobuf==0', {
++ 'protoc_executable': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
++ }, { # use_system_protobuf==1
++ 'protoc_executable': '<!(which protoc)',
++ }],
++ ],
+ 'compiled_js_dir': '<(SHARED_INTERMEDIATE_DIR)/closure_out/instaweb',
+ 'data2c_out_dir': '<(SHARED_INTERMEDIATE_DIR)/data2c_out/instaweb',
+ 'data2c_exe':
diff --git a/www/mod_pagespeed/files/patch-net_instaweb_mod__pagespeed.gypi b/www/mod_pagespeed/files/patch-net_instaweb_mod__pagespeed.gypi
new file mode 100644
index 000000000000..dc79667837ea
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-net_instaweb_mod__pagespeed.gypi
@@ -0,0 +1,15 @@
+--- net/instaweb/mod_pagespeed.gypi.orig 2017-10-06 10:03:15 UTC
++++ net/instaweb/mod_pagespeed.gypi
+@@ -41,7 +41,12 @@
+ '<(DEPTH)/pagespeed/apache/mod_instaweb.cc',
+ '<(DEPTH)/pagespeed/kernel/base/mem_debug.cc',
+ ],
++ 'defines+': [
++ 'USE_EXPAT',
++ 'SHARED_MODULE',
++ ],
+ 'ldflags+': [
+ '-Wl,--version-script=build/mod_pagespeed.map',
++ '-Wl,-Bshareable'
+ ],
+ }
diff --git a/www/mod_pagespeed/files/patch-net_instaweb_protoc.gypi b/www/mod_pagespeed/files/patch-net_instaweb_protoc.gypi
new file mode 100644
index 000000000000..44c8a955df33
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-net_instaweb_protoc.gypi
@@ -0,0 +1,41 @@
+--- net/instaweb/protoc.gypi.orig 2017-06-08 22:22:39 UTC
++++ net/instaweb/protoc.gypi
+@@ -18,7 +18,13 @@
+ 'has_services%': 0,
+ # TODO(cheesy): Just remove these variables, since they are basically
+ # global, plus we depend directly on protoc anyway.
+- 'protoc_executable%': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
++ 'conditions': [
++ ['use_system_protobuf==0', {
++ 'protoc_executable': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
++ }, { # use_system_protobuf==1
++ 'protoc_executable': '<!(which protoc)',
++ }],
++ ],
+ 'protoc_out_dir%': '<(SHARED_INTERMEDIATE_DIR)/protoc_out/instaweb',
+ },
+ 'rules': [
+@@ -29,8 +35,8 @@
+ 'process_outputs_as_sources': 1,
+ 'variables': {
+ 'protoc_args': [
+- '--proto_path=<(protoc_out_dir)/',
+- '--cpp_out=<(protoc_out_dir)',
++ '--proto_path=<(protoc_out_dir)/',
++ '--cpp_out=<(protoc_out_dir)',
+ ],
+ },
+ 'inputs': [
+@@ -39,9 +45,9 @@
+ ],
+ 'message': 'Generating C++ code from <(RULE_INPUT_PATH)',
+ 'outputs': [
+- '<(protoc_out_dir)/<(instaweb_protoc_subdir)/<(RULE_INPUT_ROOT).pb.h',
+- '<(protoc_out_dir)/<(instaweb_protoc_subdir)/<(RULE_INPUT_ROOT).pb.cc',
+- '<(protoc_out_dir)/<(instaweb_protoc_subdir)/<(RULE_INPUT_ROOT).proto',
++ '<(protoc_out_dir)/<(instaweb_protoc_subdir)/<(RULE_INPUT_ROOT).pb.h',
++ '<(protoc_out_dir)/<(instaweb_protoc_subdir)/<(RULE_INPUT_ROOT).pb.cc',
++ '<(protoc_out_dir)/<(instaweb_protoc_subdir)/<(RULE_INPUT_ROOT).proto',
+ ],
+ 'conditions': [
+ ['has_services != 0', {
diff --git a/www/mod_pagespeed/files/patch-net_instaweb_rewriter_image.cc b/www/mod_pagespeed/files/patch-net_instaweb_rewriter_image.cc
new file mode 100644
index 000000000000..867db3418332
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-net_instaweb_rewriter_image.cc
@@ -0,0 +1,10 @@
+--- net/instaweb/rewriter/image.cc.orig 2017-09-13 23:22:49 UTC
++++ net/instaweb/rewriter/image.cc
+@@ -20,6 +20,7 @@
+
+ #include <algorithm>
+ #include <cstddef>
++#include <zlib.h>
+
+ #include "base/logging.h"
+ #include "net/instaweb/rewriter/cached_result.pb.h"
diff --git a/www/mod_pagespeed/files/patch-pagespeed_kernel.gyp b/www/mod_pagespeed/files/patch-pagespeed_kernel.gyp
new file mode 100644
index 000000000000..96dd30d343fd
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-pagespeed_kernel.gyp
@@ -0,0 +1,19 @@
+--- pagespeed/kernel.gyp.orig 2017-09-12 22:02:20 UTC
++++ pagespeed/kernel.gyp
+@@ -16,8 +16,13 @@
+ 'variables': {
+ 'instaweb_root': '..',
+- 'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out/instaweb',
+- 'protoc_executable':
+- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
++ 'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out/instaweb',
++ 'conditions': [
++ ['use_system_protobuf==0', {
++ 'protoc_executable': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
++ }, { # use_system_protobuf==1
++ 'protoc_executable': '<!(which protoc)',
++ }],
++ ],
+ 'data2c_out_dir': '<(SHARED_INTERMEDIATE_DIR)/data2c_out/instaweb',
+ 'data2c_exe':
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)instaweb_data2c<(EXECUTABLE_SUFFIX)',
diff --git a/www/mod_pagespeed/files/patch-pagespeed_kernel_image_gif__reader.cc b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_gif__reader.cc
new file mode 100644
index 000000000000..219d1978b023
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_gif__reader.cc
@@ -0,0 +1,13 @@
+--- pagespeed/kernel/image/gif_reader.cc.orig 2017-09-13 22:14:53 UTC
++++ pagespeed/kernel/image/gif_reader.cc
+@@ -411,8 +411,8 @@ bool ReadGifToPng(GifFileType* gif_file,
+ png_uint_32 height = png_get_image_height(paletted_png_ptr,
+ paletted_info_ptr);
+ for (png_uint_32 row = 1; row < height; ++row) {
+- memcpy(paletted_info_ptr->row_pointers[row],
+- paletted_info_ptr->row_pointers[0],
++ memcpy(/*paletted_info_ptr->*/row_pointers[row],
++ /*paletted_info_ptr->*/row_pointers[0],
+ row_size);
+ }
+
diff --git a/www/mod_pagespeed/files/patch-pagespeed_kernel_image_image__converter.cc b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_image__converter.cc
new file mode 100644
index 000000000000..e9b8a5248963
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_image__converter.cc
@@ -0,0 +1,10 @@
+--- pagespeed/kernel/image/image_converter.cc.orig 2017-09-13 22:51:16 UTC
++++ pagespeed/kernel/image/image_converter.cc
+@@ -23,6 +23,7 @@ using net_instaweb::MessageHandler;
+
+ #include <setjmp.h>
+ #include <cstddef>
++#include <zlib.h>
+
+ extern "C" {
+ #ifdef USE_SYSTEM_LIBPNG
diff --git a/www/mod_pagespeed/files/patch-pagespeed_kernel_image_png__optimizer__test.cc b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_png__optimizer__test.cc
new file mode 100644
index 000000000000..9a2e0227fe30
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_png__optimizer__test.cc
@@ -0,0 +1,10 @@
+--- pagespeed/kernel/image/png_optimizer_test.cc.orig 2017-10-06 21:33:57 UTC
++++ pagespeed/kernel/image/png_optimizer_test.cc
+@@ -36,6 +36,7 @@ extern "C" {
+ #else
+ #include "third_party/libpng/src/png.h"
+ #endif
++#include "zlib.h"
+ }
+
+ namespace {
diff --git a/www/mod_pagespeed/files/patch-pagespeed_kernel_image_test__utils.cc b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_test__utils.cc
new file mode 100644
index 000000000000..cc3545dfbc01
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_test__utils.cc
@@ -0,0 +1,13 @@
+--- pagespeed/kernel/image/test_utils.cc.orig 2017-10-06 17:27:24 UTC
++++ pagespeed/kernel/image/test_utils.cc
+@@ -168,8 +168,8 @@ void DecodeAndCompareImagesByPSNR(
+
+ void CompareImageReaders(ScanlineReaderInterface* reader1,
+ ScanlineReaderInterface* reader2) {
+- ASSERT_NE(reinterpret_cast<ScanlineReaderInterface*>(NULL), reader1);
+- ASSERT_NE(reinterpret_cast<ScanlineReaderInterface*>(NULL), reader2);
++ ASSERT_NE(reinterpret_cast<ScanlineReaderInterface*>((void *)NULL), reader1);
++ ASSERT_NE(reinterpret_cast<ScanlineReaderInterface*>((void *)NULL), reader2);
+ ASSERT_EQ(reader1->GetPixelFormat(), reader2->GetPixelFormat());
+ ASSERT_EQ(reader1->GetImageHeight(), reader2->GetImageHeight());
+ ASSERT_EQ(reader1->GetImageWidth(), reader2->GetImageWidth());
diff --git a/www/mod_pagespeed/files/patch-pagespeed_kernel_image_webp__optimizer__test.cc b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_webp__optimizer__test.cc
new file mode 100644
index 000000000000..a0ff2036ab57
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-pagespeed_kernel_image_webp__optimizer__test.cc
@@ -0,0 +1,11 @@
+--- pagespeed/kernel/image/webp_optimizer_test.cc.orig 2017-10-06 21:38:20 UTC
++++ pagespeed/kernel/image/webp_optimizer_test.cc
+@@ -121,7 +121,7 @@ class WebpScanlineOptimizerTest : public
+ CreateScanlineWriter(pagespeed::image_compression::IMAGE_WEBP,
+ pixel_format, width, height, &webp_config,
+ webp_image, &message_handler_));
+- ASSERT_NE(reinterpret_cast<ScanlineWriterInterface*>(NULL),
++ ASSERT_NE(reinterpret_cast<ScanlineWriterInterface*>((void *)NULL),
+ webp_writer.get());
+
+ // Read the scanlines from the original image and write them to the new one.
diff --git a/www/mod_pagespeed/files/patch-pagespeed_opt.gyp b/www/mod_pagespeed/files/patch-pagespeed_opt.gyp
new file mode 100644
index 000000000000..06529da5c512
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-pagespeed_opt.gyp
@@ -0,0 +1,18 @@
+--- pagespeed/opt.gyp.orig 2017-09-12 22:04:16 UTC
++++ pagespeed/opt.gyp
+@@ -20,8 +20,13 @@
+ # errors.
+ 'chromium_code': 1,
+ 'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out/instaweb',
+- 'protoc_executable':
+- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
++ 'conditions': [
++ ['use_system_protobuf==0', {
++ 'protoc_executable': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
++ }, { # use_system_protobuf==1
++ 'protoc_executable': '<!(which protoc)',
++ }],
++ ],
+ 'compiled_js_dir': '<(SHARED_INTERMEDIATE_DIR)/closure_out/instaweb',
+ 'data2c_out_dir': '<(SHARED_INTERMEDIATE_DIR)/data2c_out/instaweb',
+ 'data2c_exe':
diff --git a/www/mod_pagespeed/files/patch-pagespeed_system_system__rewrite__driver__factory.cc b/www/mod_pagespeed/files/patch-pagespeed_system_system__rewrite__driver__factory.cc
new file mode 100644
index 000000000000..3ab1973f8b07
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-pagespeed_system_system__rewrite__driver__factory.cc
@@ -0,0 +1,24 @@
+--- pagespeed/system/system_rewrite_driver_factory.cc.orig 2017-09-14 17:19:19 UTC
++++ pagespeed/system/system_rewrite_driver_factory.cc
+@@ -16,7 +16,9 @@
+
+ #include "pagespeed/system/system_rewrite_driver_factory.h"
+
++#if !defined(OS_BSD)
+ #include <sys/prctl.h>
++#endif
+ #include <algorithm> // for min
+ #include <cstdio>
+ #include <cstdlib>
+@@ -255,9 +257,11 @@ void SystemRewriteDriverFactory::NamePro
+ // Set the process status. This is what /proc/PID/status shows and what
+ // "ps -a" gives you. With PR_SET_NAME there's a max of 16 characters, so
+ // abbreviate pagespeed as ps to be terse.
++#if !defined(OS_BSD)
+ char name_for_prctl[16];
+ snprintf(name_for_prctl, sizeof(name_for_prctl), "ps-%s", name);
+ prctl(PR_SET_NAME, name_for_prctl);
++#endif
+
+ // It's also possible to change argv[0], but this is a pain so currently we
+ // only do this in nginx where they've written ngx_setproctitle to make it
diff --git a/www/mod_pagespeed/files/patch-testing_gtest.gyp b/www/mod_pagespeed/files/patch-testing_gtest.gyp
new file mode 100644
index 000000000000..fa8d6762f0ba
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-testing_gtest.gyp
@@ -0,0 +1,23 @@
+--- testing/gtest.gyp.orig 2017-10-06 20:45:48 UTC
++++ testing/gtest.gyp
+@@ -46,15 +46,20 @@
+ ],
+ 'dependencies': [
+ 'gtest_prod',
++ '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
++ '<(DEPTH)/third_party/apr/apr.gyp:include',
++ '<(DEPTH)/third_party/aprutil/aprutil.gyp:include',
+ ],
+ 'defines': [
+ # In order to allow regex matches in gtest to be shared between Windows
+ # and other systems, we tell gtest to always use it's internal engine.
+ 'GTEST_HAS_POSIX_RE=0',
++ 'GTEST_HAS_DEATH_TEST=1',
+ ],
+ 'all_dependent_settings': {
+ 'defines': [
+ 'GTEST_HAS_POSIX_RE=0',
++ 'GTEST_HAS_DEATH_TEST=1',
+ ],
+ },
+ 'conditions': [
diff --git a/www/mod_pagespeed/files/patch-testing_gtest_include_gtest_gtest.h b/www/mod_pagespeed/files/patch-testing_gtest_include_gtest_gtest.h
new file mode 100644
index 000000000000..5826232699ad
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-testing_gtest_include_gtest_gtest.h
@@ -0,0 +1,13 @@
+--- testing/gtest/include/gtest/gtest.h.orig 2017-10-06 20:33:54 UTC
++++ testing/gtest/include/gtest/gtest.h
+@@ -55,6 +55,10 @@
+ #include <ostream>
+ #include <vector>
+
++#ifndef GTEST_HAS_DEATH_TEST
++#define GTEST_HAS_DEATH_TEST 1
++#endif
++
+ #include "gtest/internal/gtest-internal.h"
+ #include "gtest/internal/gtest-string.h"
+ #include "gtest/gtest-death-test.h"
diff --git a/www/mod_pagespeed/files/patch-testing_gtest_include_gtest_internal_gtest-port.h b/www/mod_pagespeed/files/patch-testing_gtest_include_gtest_internal_gtest-port.h
new file mode 100644
index 000000000000..bd614ef8c800
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-testing_gtest_include_gtest_internal_gtest-port.h
@@ -0,0 +1,10 @@
+--- testing/gtest/include/gtest/internal/gtest-port.h.orig 2017-10-06 21:19:08 UTC
++++ testing/gtest/include/gtest/internal/gtest-port.h
+@@ -211,6 +211,7 @@
+ #include <iostream> // NOLINT
+ #include <sstream> // NOLINT
+ #include <string> // NOLINT
++#include <vector>
+
+ #define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com"
+ #define GTEST_FLAG_PREFIX_ "gtest_"
diff --git a/www/mod_pagespeed/files/patch-third__party_apr_apr.gyp b/www/mod_pagespeed/files/patch-third__party_apr_apr.gyp
new file mode 100644
index 000000000000..4bbc6235e8f0
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_apr_apr.gyp
@@ -0,0 +1,39 @@
+--- third_party/apr/apr.gyp.orig 2017-10-04 20:42:02 UTC
++++ third_party/apr/apr.gyp
+@@ -19,7 +19,7 @@
+ 'apr_src_root': '<(apr_root)/src',
+ 'apr_gen_os_root': '<(apr_root)/gen/arch/<(OS)',
+ 'apr_gen_arch_root': '<(apr_gen_os_root)/<(target_arch)',
+- 'system_include_path_apr%': '/usr/include/apr-1.0',
++ 'system_include_path_apr%': '/usr/local/include/apr-1',
+ 'conditions': [
+ ['OS!="win"', {
+ 'apr_os_include': '<(apr_src_root)/include/arch/unix',
+@@ -187,6 +187,14 @@
+ '_GNU_SOURCE',
+ ],
+ },
++ 'link_settings': {
++ 'ldflags': [
++ '<!@(pkg-config --libs apr-1)',
++ ],
++ 'libraries': [
++ '<!@(pkg-config --libs apr-1)',
++ ],
++ },
+ },
+ {
+ 'target_name': 'apr',
+@@ -198,8 +206,11 @@
+ 'include',
+ ],
+ 'link_settings': {
++ 'ldflags': [
++ '<!@(pkg-config --libs apr-1)',
++ ],
+ 'libraries': [
+- '-lapr-1',
++ '<!@(pkg-config --libs apr-1)',
+ ],
+ },
+ },
diff --git a/www/mod_pagespeed/files/patch-third__party_aprutil_aprutil.gyp b/www/mod_pagespeed/files/patch-third__party_aprutil_aprutil.gyp
new file mode 100644
index 000000000000..84753025ce0d
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_aprutil_aprutil.gyp
@@ -0,0 +1,39 @@
+--- third_party/aprutil/aprutil.gyp.orig 2017-10-04 20:48:05 UTC
++++ third_party/aprutil/aprutil.gyp
+@@ -22,7 +22,7 @@
+ 'aprutil_src_root': '<(aprutil_root)/src',
+ 'aprutil_gen_os_root': '<(aprutil_root)/gen/arch/<(OS)',
+ 'aprutil_gen_arch_root': '<(aprutil_gen_os_root)/<(target_arch)',
+- 'system_include_path_aprutil%': '/usr/include/apr-1.0',
++ 'system_include_path_aprutil%': '/usr/local/include/apr-1',
+ },
+ 'conditions': [
+ ['use_system_apache_dev==0', {
+@@ -142,6 +142,14 @@
+ '_GNU_SOURCE',
+ ],
+ },
++ 'link_settings': {
++ 'ldflags': [
++ '<!@(pkg-config --libs apr-util-1)',
++ ],
++ 'libraries': [
++ '<!@(pkg-config --libs apr-util-1)',
++ ],
++ },
+ },
+ {
+ 'target_name': 'aprutil',
+@@ -153,8 +161,11 @@
+ 'include',
+ ],
+ 'link_settings': {
++ 'ldflags': [
++ '<!@(pkg-config --libs apr-util-1)',
++ ],
+ 'libraries': [
+- '-laprutil-1',
++ '<!@(pkg-config --libs apr-util-1)',
+ ],
+ },
+ },
diff --git a/www/mod_pagespeed/files/patch-third__party_chromium_src_base_debug_stack__trace__posix.cc b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_debug_stack__trace__posix.cc
new file mode 100644
index 000000000000..06761314fdb2
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_debug_stack__trace__posix.cc
@@ -0,0 +1,23 @@
+--- third_party/chromium/src/base/debug/stack_trace_posix.cc.orig 2017-08-29 15:13:37 UTC
++++ third_party/chromium/src/base/debug/stack_trace_posix.cc
+@@ -145,7 +145,7 @@ void ProcessBacktrace(void *const *trace
+
+ handler->HandleOutput("\n");
+ }
+-#else
++#elif defined(OS_LINUX)
+ bool printed = false;
+
+ // Below part is async-signal unsafe (uses malloc), so execute it only
+@@ -472,7 +472,11 @@ StackTrace::StackTrace() {
+
+ // Though the backtrace API man page does not list any possible negative
+ // return values, we take no chance.
++#if defined(OS_LINUX)
+ count_ = std::max(backtrace(trace_, arraysize(trace_)), 0);
++#else
++ count_ = 0;
++#endif
+ }
+
+ void StackTrace::Print() const {
diff --git a/www/mod_pagespeed/files/patch-third__party_chromium_src_base_profiler_alternate__timer.cc b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_profiler_alternate__timer.cc
new file mode 100644
index 000000000000..f91031030893
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_profiler_alternate__timer.cc
@@ -0,0 +1,11 @@
+--- third_party/chromium/src/base/profiler/alternate_timer.cc.orig 2017-09-12 17:53:20 UTC
++++ third_party/chromium/src/base/profiler/alternate_timer.cc
+@@ -21,7 +21,7 @@ const char kAlternateProfilerTime[] = "C
+ // Set an alternate timer function to replace the OS time function when
+ // profiling.
+ void SetAlternateTimeSource(NowFunction* now_function, TimeSourceType type) {
+- DCHECK_EQ(reinterpret_cast<NowFunction*>(NULL), g_time_function);
++ DCHECK_EQ(reinterpret_cast<NowFunction*>((void *)NULL), g_time_function);
+ g_time_function = now_function;
+ g_time_source_type = type;
+ }
diff --git a/www/mod_pagespeed/files/patch-third__party_chromium_src_base_strings_string__util.h b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_strings_string__util.h
new file mode 100644
index 000000000000..86825b1bdb73
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_strings_string__util.h
@@ -0,0 +1,11 @@
+--- third_party/chromium/src/base/strings/string_util.h.orig 2017-09-13 21:56:00 UTC
++++ third_party/chromium/src/base/strings/string_util.h
+@@ -377,7 +377,7 @@ inline Char HexDigitToInt(Char c) {
+
+ // Returns true if it's a whitespace character.
+ inline bool IsWhitespace(wchar_t c) {
+- return wcschr(base::kWhitespaceWide, c) != NULL;
++ return (::wcschr(base::kWhitespaceWide, c) != (wchar_t *)NULL);
+ }
+
+ // Return a byte string in human-readable format with a unit suffix. Not
diff --git a/www/mod_pagespeed/files/patch-third__party_chromium_src_base_threading_platform__thread__linux.cc b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_threading_platform__thread__linux.cc
new file mode 100644
index 000000000000..ddc099f5abed
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_threading_platform__thread__linux.cc
@@ -0,0 +1,21 @@
+--- third_party/chromium/src/base/threading/platform_thread_linux.cc.orig 2017-08-29 15:13:38 UTC
++++ third_party/chromium/src/base/threading/platform_thread_linux.cc
+@@ -16,7 +16,9 @@
+ #include "base/tracked_objects.h"
+
+ #if !defined(OS_NACL)
++#if !defined(OS_BSD)
+ #include <sys/prctl.h>
++#endif
+ #include <sys/resource.h>
+ #include <sys/syscall.h>
+ #include <sys/time.h>
+@@ -48,7 +50,7 @@ void PlatformThread::SetName(const char*
+ ThreadIdNameManager::GetInstance()->SetName(CurrentId(), name);
+ tracked_objects::ThreadData::InitializeThreadContext(name);
+
+-#if !defined(OS_NACL)
++#if !defined(OS_NACL) && !defined(OS_AIX) && !defined(OS_BSD)
+ // On linux we can get the thread names to show up in the debugger by setting
+ // the process name for the LWP. We don't want to do this for the main
+ // thread because that would rename the process, causing tools like killall
diff --git a/www/mod_pagespeed/files/patch-third__party_chromium_src_base_tracked__objects.cc b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_tracked__objects.cc
new file mode 100644
index 000000000000..bb6674dfd15b
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_chromium_src_base_tracked__objects.cc
@@ -0,0 +1,11 @@
+--- third_party/chromium/src/base/tracked_objects.cc.orig 2017-09-12 17:33:52 UTC
++++ third_party/chromium/src/base/tracked_objects.cc
+@@ -378,7 +378,7 @@ void ThreadData::OnThreadTerminationClea
+ }
+ // We must NOT do any allocations during this callback.
+ // Using the simple linked lists avoids all allocations.
+- DCHECK_EQ(this->next_retired_worker_, reinterpret_cast<ThreadData*>(NULL));
++ DCHECK_EQ(this->next_retired_worker_, reinterpret_cast<ThreadData*>((void *)NULL));
+ this->next_retired_worker_ = first_retired_worker_;
+ first_retired_worker_ = this;
+ }
diff --git a/www/mod_pagespeed/files/patch-third__party_chromium_src_build_common.gypi b/www/mod_pagespeed/files/patch-third__party_chromium_src_build_common.gypi
new file mode 100644
index 000000000000..7b13b1c4c39e
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_chromium_src_build_common.gypi
@@ -0,0 +1,71 @@
+--- third_party/chromium/src/build/common.gypi.orig 2017-10-07 00:10:16 UTC
++++ third_party/chromium/src/build/common.gypi
+@@ -100,7 +100,7 @@
+ ['OS=="win" or OS=="mac" or OS=="ios"', {
+ 'host_arch%': 'ia32',
+ }, {
+- 'host_arch%': '<!(python <(DEPTH)/build/linux/detect_host_arch.py)',
++ 'host_arch%': '<!(python2.7 <(DEPTH)/build/linux/detect_host_arch.py)',
+ }],
+
+ # Embedded implies ozone.
+@@ -1252,8 +1252,8 @@
+ # Contains data about the attached devices for gyp_managed_install.
+ 'build_device_config_path': '<(PRODUCT_DIR)/build_devices.cfg',
+
+- 'sas_dll_exists': '<!(python <(DEPTH)/build/dir_exists.py "<(sas_dll_path)")',
+- 'wix_exists': '<!(python <(DEPTH)/build/dir_exists.py "<(wix_path)")',
++ 'sas_dll_exists': '<!(python2.7 <(DEPTH)/build/dir_exists.py "<(sas_dll_path)")',
++ 'wix_exists': '<!(python2.7 <(DEPTH)/build/dir_exists.py "<(wix_path)")',
+
+ 'windows_sdk_default_path': '<(DEPTH)/third_party/platformsdk_win8/files',
+ 'directx_sdk_default_path': '<(DEPTH)/third_party/directxsdk/files',
+@@ -1303,18 +1303,18 @@
+ # We directly set the gcc_version since we know what we use.
+ 'gcc_version%': 46,
+ }, {
+- 'gcc_version%': '<!(python <(DEPTH)/build/compiler_version.py)',
++ 'gcc_version%': '<!(python2.7 <(DEPTH)/build/compiler_version.py)',
+ }],
+ ],
+ }, {
+ 'gcc_version%': 0,
+ }],
+- ['OS=="win" and "<!(python <(DEPTH)/build/dir_exists.py <(windows_sdk_default_path))"=="True"', {
++ ['OS=="win" and "<!(python2.7 <(DEPTH)/build/dir_exists.py <(windows_sdk_default_path))"=="True"', {
+ 'windows_sdk_path%': '<(windows_sdk_default_path)',
+ }, {
+ 'windows_sdk_path%': 'C:/Program Files (x86)/Windows Kits/8.0',
+ }],
+- ['OS=="win" and "<!(python <(DEPTH)/build/dir_exists.py <(directx_sdk_default_path))"=="True"', {
++ ['OS=="win" and "<!(python2.7 <(DEPTH)/build/dir_exists.py <(directx_sdk_default_path))"=="True"', {
+ 'directx_sdk_path%': '<(directx_sdk_default_path)',
+ }, {
+ 'directx_sdk_path%': '$(DXSDK_DIR)',
+@@ -1365,7 +1365,7 @@
+ # The Mac SDK is set for iOS builds and passed through to Mac
+ # sub-builds. This allows the Mac sub-build SDK in an iOS build to be
+ # overridden from the command line the same way it is for a Mac build.
+- 'mac_sdk%': '<!(python <(DEPTH)/build/mac/find_sdk.py 10.6)',
++ 'mac_sdk%': '<!(python2.7 <(DEPTH)/build/mac/find_sdk.py 10.6)',
+
+ # iOS SDK and deployment target support. The |ios_sdk| value is left
+ # blank so that when it is set in the project files it will be the
+@@ -1585,7 +1585,7 @@
+ }],
+
+ ['branding=="Chrome" and buildtype=="Official"', {
+- 'mac_sdk%': '<!(python <(DEPTH)/build/mac/find_sdk.py --verify <(mac_sdk_min) --sdk_path=<(mac_sdk_path))',
++ 'mac_sdk%': '<!(python2.7 <(DEPTH)/build/mac/find_sdk.py --verify <(mac_sdk_min) --sdk_path=<(mac_sdk_path))',
+ # Enable uploading crash dumps.
+ 'mac_breakpad_uploads%': 1,
+ # Enable dumping symbols at build time for use by Mac Breakpad.
+@@ -1593,7 +1593,7 @@
+ # Enable Keystone auto-update support.
+ 'mac_keystone%': 1,
+ }, { # else: branding!="Chrome" or buildtype!="Official"
+- 'mac_sdk%': '<!(python <(DEPTH)/build/mac/find_sdk.py <(mac_sdk_min))',
++ 'mac_sdk%': '<!(python2.7 <(DEPTH)/build/mac/find_sdk.py <(mac_sdk_min))',
+ 'mac_breakpad_uploads%': 0,
+ 'mac_breakpad%': 0,
+ 'mac_keystone%': 0,
diff --git a/www/mod_pagespeed/files/patch-third__party_chromium_src_build_util_version.gypi b/www/mod_pagespeed/files/patch-third__party_chromium_src_build_util_version.gypi
new file mode 100644
index 000000000000..7f8ec93d5c30
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_chromium_src_build_util_version.gypi
@@ -0,0 +1,13 @@
+--- third_party/chromium/src/build/util/version.gypi.orig 2017-10-06 23:59:53 UTC
++++ third_party/chromium/src/build/util/version.gypi
+@@ -11,8 +11,8 @@
+ 'version_py_path': '<(version_py_path)',
+ 'version_path': '<(version_path)',
+ 'version_full':
+- '<!(python <(version_py_path) -f <(version_path) -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")',
++ '<!(python2.7 <(version_py_path) -f <(version_path) -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")',
+ 'version_mac_dylib':
+- '<!(python <(version_py_path) -f <(version_path) -t "@BUILD@.@PATCH_HI@.@PATCH_LO@" -e "PATCH_HI=int(PATCH)/256" -e "PATCH_LO=int(PATCH)%256")',
++ '<!(python2.7 <(version_py_path) -f <(version_path) -t "@BUILD@.@PATCH_HI@.@PATCH_LO@" -e "PATCH_HI=int(PATCH)/256" -e "PATCH_LO=int(PATCH)%256")',
+ }, # variables
+ }
diff --git a/www/mod_pagespeed/files/patch-third__party_closure_download.sh b/www/mod_pagespeed/files/patch-third__party_closure_download.sh
new file mode 100644
index 000000000000..e361adcf8ae7
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_closure_download.sh
@@ -0,0 +1,10 @@
+--- third_party/closure/download.sh.orig 2017-10-07 01:47:55 UTC
++++ third_party/closure/download.sh
+@@ -37,7 +37,6 @@ JAR=$DIR/compiler.jar
+ # verison.
+ if [[ ! -e $JAR || -z "$(java -jar $JAR --version | grep $VERSION)" ]]
+ then
+- curl https://dl.google.com/closure-compiler/$ZIP --create-dirs -o $DIR/$ZIP
+ unzip -o $DIR/$ZIP -d $DIR
+ cp $JAR_IN $JAR
+ fi
diff --git a/www/mod_pagespeed/files/patch-third__party_grpc_grpc.gyp b/www/mod_pagespeed/files/patch-third__party_grpc_grpc.gyp
new file mode 100644
index 000000000000..b886b19a288a
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_grpc_grpc.gyp
@@ -0,0 +1,50 @@
+--- third_party/grpc/grpc.gyp.orig 2017-10-06 10:33:51 UTC
++++ third_party/grpc/grpc.gyp
+@@ -22,8 +22,10 @@
+ 'cflags_cc': [
+ '-Wall',
+ '-pthread',
+- '-zdefs',
+- '-Wno-error=deprecated-declarations'
++ '-Wl,-z,defs',
++ '-Wno-error=deprecated-declarations',
++ '-frtti',
++ '-I/usr/local/include'
+ ],
+ 'sources': [
+ "src/src/cpp/client/secure_credentials.cc",
+@@ -71,9 +73,12 @@
+ 'cflags': [
+ '-std=c99',
+ '-Wall',
++ '-frtti',
++ '-I/usr/local/include',
+ ],
+ 'ldflags': [
+ '-Wl,-wrap,memcpy',
++ '-Wl,-z,defs',
+ ],
+ 'sources': [
+ 'src/src/core/lib/surface/init.c',
+@@ -270,6 +276,8 @@
+ 'cflags': [
+ '-std=c99',
+ '-Wall',
++ '-frtti',
++ '-I/usr/local/include',
+ ],
+ 'sources': [
+ 'src/src/core/lib/profiling/basic_timers.c',
+@@ -326,8 +334,10 @@
+ 'cflags_cc': [
+ '-Wall',
+ '-pthread',
+- '-zdefs',
+- '-Wno-error=deprecated-declarations'
++ '-Wl,-z,defs',
++ '-Wno-error=deprecated-declarations',
++ '-frtti',
++ '-I/usr/local/include'
+ ],
+ 'sources': [
+ 'src/src/compiler/cpp_generator.cc',
diff --git a/www/mod_pagespeed/files/patch-third__party_grpc_src_binding.gyp b/www/mod_pagespeed/files/patch-third__party_grpc_src_binding.gyp
new file mode 100644
index 000000000000..541b29c205dd
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_grpc_src_binding.gyp
@@ -0,0 +1,103 @@
+--- third_party/grpc/src/binding.gyp.orig 2017-10-06 10:33:51 UTC
++++ third_party/grpc/src/binding.gyp
+@@ -91,11 +91,14 @@
+ 'cflags': [
+ '-ftest-coverage',
+ '-fprofile-arcs',
+- '-O0'
++ '-O0',
++ '-frtti',
++ '-I/usr/local/include'
+ ],
+ 'ldflags': [
+ '-ftest-coverage',
+- '-fprofile-arcs'
++ '-fprofile-arcs',
++ '-Wl,-z,defs'
+ ]
+ }
+ ],
+@@ -143,7 +147,9 @@
+ 'cflags': [
+ '-std=c99',
+ '-Wall',
+- '-Werror'
++ '-Werror',
++ '-frtti',
++ '-I/usr/local/include'
+ ],
+ 'target_name': 'boringssl',
+ 'product_prefix': 'lib',
+@@ -454,7 +460,9 @@
+ 'cflags': [
+ '-std=c99',
+ '-Wall',
+- '-Werror'
++ '-Werror',
++ '-frtti',
++ '-I/usr/local/include'
+ ],
+ 'target_name': 'z',
+ 'product_prefix': 'lib',
+@@ -487,7 +495,9 @@
+ 'cflags': [
+ '-std=c99',
+ '-Wall',
+- '-Werror'
++ '-Werror',
++ '-frtti',
++ '-I/usr/local/include'
+ ],
+ 'target_name': 'gpr',
+ 'product_prefix': 'lib',
+@@ -553,7 +563,9 @@
+ 'cflags': [
+ '-std=c99',
+ '-Wall',
+- '-Werror'
++ '-Werror',
++ '-frtti',
++ '-I/usr/local/include'
+ ],
+ 'target_name': 'grpc',
+ 'product_prefix': 'lib',
+@@ -766,12 +778,15 @@
+ '-Wall',
+ '-pthread',
+ '-g',
+- '-zdefs',
++ '-Wl,-z,defs',
+ '-Werror',
+- '-Wno-error=deprecated-declarations'
++ '-Wno-error=deprecated-declarations',
++ '-frtti',
++ '-I/usr/local/include'
+ ],
+ 'ldflags': [
+- '-g'
++ '-g',
++ '-Wl,-z,defs'
+ ],
+ "conditions": [
+ ['OS=="mac"', {
+@@ -779,7 +795,9 @@
+ 'MACOSX_DEPLOYMENT_TARGET': '10.9',
+ 'OTHER_CFLAGS': [
+ '-stdlib=libc++',
+- '-std=c++11'
++ '-std=c++11',
++ '-frtti',
++ '-I/usr/local/include'
+ ]
+ }
+ }],
+@@ -791,7 +809,8 @@
+ }],
+ ['OS=="linux"', {
+ 'ldflags': [
+- '-Wl,-wrap,memcpy'
++ '-Wl,-wrap,memcpy',
++ '-Wl,-z,defs'
+ ]
+ }]
+ ],
diff --git a/www/mod_pagespeed/files/patch-third__party_grpc_src_include_grpc_impl_codegen_port__platform.h b/www/mod_pagespeed/files/patch-third__party_grpc_src_include_grpc_impl_codegen_port__platform.h
new file mode 100644
index 000000000000..7a566ca46e6e
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_grpc_src_include_grpc_impl_codegen_port__platform.h
@@ -0,0 +1,12 @@
+--- third_party/grpc/src/include/grpc/impl/codegen/port_platform.h.orig 2017-09-14 17:36:37 UTC
++++ third_party/grpc/src/include/grpc/impl/codegen/port_platform.h
+@@ -301,7 +301,8 @@
+ #define GPR_SUPPORT_CHANNELS_FROM_FD 1
+ #define GPR_HAVE_SO_NOSIGPIPE 1
+ #define GPR_HAVE_UNIX_SOCKET 1
+-#define GPR_HAVE_IP_PKTINFO 1
++#define GPR_HAVE_IP_PKTINFO 0
++#undef GPR_HAVE_IP_PKTINFO
+ #define GPR_HAVE_IPV6_RECVPKTINFO 1
+ #ifdef _LP64
+ #define GPR_ARCH_64 1
diff --git a/www/mod_pagespeed/files/patch-third__party_grpc_src_src_core_lib_tsi_ssl__transport__security.c b/www/mod_pagespeed/files/patch-third__party_grpc_src_src_core_lib_tsi_ssl__transport__security.c
new file mode 100644
index 000000000000..165a37b827a0
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_grpc_src_src_core_lib_tsi_ssl__transport__security.c
@@ -0,0 +1,10 @@
+--- third_party/grpc/src/src/core/lib/tsi/ssl_transport_security.c.orig 2017-09-14 17:46:43 UTC
++++ third_party/grpc/src/src/core/lib/tsi/ssl_transport_security.c
+@@ -35,6 +35,7 @@
+
+ #include <grpc/support/port_platform.h>
+
++#include <sys/socket.h>
+ #include <limits.h>
+ #include <string.h>
+
diff --git a/www/mod_pagespeed/files/patch-third__party_grpc_src_templates_binding.gyp.template b/www/mod_pagespeed/files/patch-third__party_grpc_src_templates_binding.gyp.template
new file mode 100644
index 000000000000..fab21de8d3ec
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_grpc_src_templates_binding.gyp.template
@@ -0,0 +1,76 @@
+--- third_party/grpc/src/templates/binding.gyp.template.orig 2016-08-19 00:55:10 UTC
++++ third_party/grpc/src/templates/binding.gyp.template
+@@ -93,11 +93,13 @@
+ 'cflags': [
+ '-ftest-coverage',
+ '-fprofile-arcs',
+- '-O0'
++ '-O0',
++ '-I/usr/local/include'
+ ],
+ 'ldflags': [
+ '-ftest-coverage',
+- '-fprofile-arcs'
++ '-fprofile-arcs',
++ '-Wl,-z,defs',
+ ]
+ }
+ ],
+@@ -148,7 +151,8 @@
+ 'cflags': [
+ '-std=c99',
+ '-Wall',
+- '-Werror'
++ '-Werror',
++ '-I/usr/local/include'
+ ],
+ 'target_name': '${lib.name}',
+ 'product_prefix': 'lib',
+@@ -178,7 +182,8 @@
+ 'cflags': [
+ '-std=c99',
+ '-Wall',
+- '-Werror'
++ '-Werror',
++ '-I/usr/local/include'
+ ],
+ 'target_name': '${lib.name}',
+ 'product_prefix': 'lib',
+@@ -212,12 +217,14 @@
+ '-Wall',
+ '-pthread',
+ '-g',
+- '-zdefs',
++ '-Wl,-z,defs',
+ '-Werror',
+- '-Wno-error=deprecated-declarations'
++ '-Wno-error=deprecated-declarations',
++ '-I/usr/local/include'
+ ],
+ 'ldflags': [
+- '-g'
++ '-g',
++ '-Wl,-z,defs'
+ ],
+ "conditions": [
+ ['OS=="mac"', {
+@@ -225,7 +233,8 @@
+ 'MACOSX_DEPLOYMENT_TARGET': '10.9',
+ 'OTHER_CFLAGS': [
+ '-stdlib=libc++',
+- '-std=c++11'
++ '-std=c++11',
++ '-I/usr/local/include'
+ ]
+ }
+ }],
+@@ -240,7 +249,8 @@
+ }],
+ ['OS=="linux"', {
+ 'ldflags': [
+- '-Wl,-wrap,memcpy'
++ '-Wl,-wrap,memcpy',
++ '-Wl,-z,defs'
+ ]
+ }]
+ ],
diff --git a/www/mod_pagespeed/files/patch-third__party_httpd_httpd.gyp b/www/mod_pagespeed/files/patch-third__party_httpd_httpd.gyp
new file mode 100644
index 000000000000..0e19113962fb
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_httpd_httpd.gyp
@@ -0,0 +1,22 @@
+--- third_party/httpd/httpd.gyp.orig 2017-10-06 09:52:26 UTC
++++ third_party/httpd/httpd.gyp
+@@ -18,7 +18,7 @@
+ 'apache_src_root': '<(apache_root)/src',
+ 'apache_gen_os_root': '<(apache_root)/gen/arch/<(OS)',
+ 'apache_gen_arch_root': '<(apache_gen_os_root)/<(target_arch)',
+- 'system_include_path_httpd%': '/usr/include/apache2',
++ 'system_include_path_httpd%': '/usr/local/include/apache22',
+ 'conditions': [
+ ['OS!="win"', {
+ 'apache_os_include': '<(apache_src_root)/os/unix',
+@@ -58,6 +58,10 @@
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(system_include_path_httpd)',
++ '/usr/local/libexec/apache22',
++ ],
++ 'ldflags+': [
++ '-L/usr/local/libexec/apache22',
+ ],
+ },
+ 'dependencies': [
diff --git a/www/mod_pagespeed/files/patch-third__party_libjpeg__turbo_libjpeg__turbo.gyp b/www/mod_pagespeed/files/patch-third__party_libjpeg__turbo_libjpeg__turbo.gyp
new file mode 100644
index 000000000000..30b1acec940a
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_libjpeg__turbo_libjpeg__turbo.gyp
@@ -0,0 +1,15 @@
+--- third_party/libjpeg_turbo/libjpeg_turbo.gyp.orig 2017-10-05 07:45:26 UTC
++++ third_party/libjpeg_turbo/libjpeg_turbo.gyp
+@@ -58,8 +58,11 @@
+ ],
+ },
+ 'link_settings': {
++ 'ldflags': [
++ '<!@(pkg-config --libs libjpeg)',
++ ],
+ 'libraries': [
+- '-ljpeg',
++ '<!@(pkg-config --libs libjpeg)',
+ ],
+ },
+ }
diff --git a/www/mod_pagespeed/files/patch-third__party_libpng_libpng.gyp b/www/mod_pagespeed/files/patch-third__party_libpng_libpng.gyp
new file mode 100644
index 000000000000..3c1da10fbfc2
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_libpng_libpng.gyp
@@ -0,0 +1,29 @@
+--- third_party/libpng/libpng.gyp.orig 2017-10-04 21:29:34 UTC
++++ third_party/libpng/libpng.gyp
+@@ -108,11 +108,11 @@
+ # This detects the version and sets the variable to non-zero for
+ # pre-1.4 versions.
+ 'png_free_me_suported_define_in_libpng' :
+- '<!(<(pkg-config) --atleast-version=1.4.0 libpng; echo $?)'
++ '<!(<(pkg-config) --atleast-version=1.4.0 libpng; echo $?)'
+ },
+ 'direct_dependent_settings': {
+ 'cflags': [
+- '<!@(<(pkg-config) --cflags libpng)',
++ '<!@(<(pkg-config) --cflags libpng)',
+ ],
+ 'defines+': [
+ 'USE_SYSTEM_LIBPNG',
+@@ -135,10 +135,10 @@
+ ],
+ 'link_settings': {
+ 'ldflags': [
+- '<!@(<(pkg-config) --libs-only-L --libs-only-other libpng)',
++ '<!@(<(pkg-config) --libs libpng)',
+ ],
+ 'libraries': [
+- '<!@(<(pkg-config) --libs-only-l libpng)',
++ '<!@(<(pkg-config) --libs libpng)',
+ ],
+ },
+ },
diff --git a/www/mod_pagespeed/files/patch-third__party_protobuf_protobuf.gyp b/www/mod_pagespeed/files/patch-third__party_protobuf_protobuf.gyp
new file mode 100644
index 000000000000..db5f9b8690d7
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_protobuf_protobuf.gyp
@@ -0,0 +1,72 @@
+--- third_party/protobuf/protobuf.gyp.orig 2017-06-08 22:22:39 UTC
++++ third_party/protobuf/protobuf.gyp
+@@ -518,6 +518,7 @@
+ {
+ 'target_name': 'protobuf_lite',
+ 'type': 'none',
++ 'toolsets': ['host','target'],
+ 'direct_dependent_settings': {
+ 'cflags': [
+ # Use full protobuf, because vanilla protobuf doesn't have
+@@ -529,15 +530,17 @@
+
+ # This macro must be defined to suppress the use
+ # of dynamic_cast<>, which requires RTTI.
+- 'GOOGLE_PROTOBUF_NO_RTTI',
+- 'GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER',
++ #'GOOGLE_PROTOBUF_NO_RTTI',
++ #'GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER',
+ ],
+ },
+ 'link_settings': {
+ # Use full protobuf, because vanilla protobuf doesn't have
+ # our custom patch to retain unknown fields in lite mode.
++ # Formerly this --> '<!@(pkg-config --libs-only-L --libs-only-other protobuf)',
++ # But it seems to be incorrect for grpc, so I changed it...
+ 'ldflags': [
+- '<!@(pkg-config --libs-only-L --libs-only-other protobuf)',
++ '<!@(pkg-config --libs protobuf)',
+ ],
+ 'libraries': [
+ '<!@(pkg-config --libs-only-l protobuf)',
+@@ -545,6 +548,40 @@
+ },
+ },
+ {
++ 'target_name': 'protoc_lib',
++ 'type': 'none',
++ 'toolsets': ['host'],
++ 'link_settings': {
++ 'ldflags': [
++ '-lprotoc',
++ ],
++ },
++ 'dependencies': [
++ 'protobuf_lite',
++ ],
++ },
++ {
++ 'target_name': 'protobuf_message_differencer',
++ 'type': 'none',
++ 'toolsets': ['target'],
++ 'dependencies': [
++ 'protobuf_lite',
++ ],
++ },
++ {
++ 'target_name': 'protobuf_full_do_not_use',
++ 'type': 'none',
++ 'toolsets': ['host','target'],
++ 'link_settings': {
++ 'ldflags': [
++ '-lprotoc',
++ ],
++ },
++ 'dependencies': [
++ 'protobuf_lite',
++ ],
++ },
++ {
+ 'target_name': 'protoc',
+ 'type': 'none',
+ 'toolsets': ['host', 'target'],
diff --git a/www/mod_pagespeed/files/patch-third__party_re2_src_util_benchmark.cc b/www/mod_pagespeed/files/patch-third__party_re2_src_util_benchmark.cc
new file mode 100644
index 000000000000..d3c5974cb5f2
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_re2_src_util_benchmark.cc
@@ -0,0 +1,10 @@
+--- third_party/re2/src/util/benchmark.cc.orig 2017-10-06 17:07:48 UTC
++++ third_party/re2/src/util/benchmark.cc
+@@ -6,6 +6,7 @@
+ #include <stdio.h>
+ #include <algorithm>
+ #include <chrono>
++#include <stdlib.h>
+
+ #include "util/util.h"
+ #include "util/flags.h"
diff --git a/www/mod_pagespeed/files/patch-third__party_serf_select__openssl.gyp b/www/mod_pagespeed/files/patch-third__party_serf_select__openssl.gyp
new file mode 100644
index 000000000000..568609ea818c
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-third__party_serf_select__openssl.gyp
@@ -0,0 +1,15 @@
+--- third_party/serf/select_openssl.gyp.orig 2017-10-04 20:20:10 UTC
++++ third_party/serf/select_openssl.gyp
+@@ -47,10 +47,10 @@
+ },
+ 'link_settings': {
+ 'ldflags': [
+- '<!@(pkg-config --libs-only-L --libs-only-other openssl)',
++ '<!@(pkg-config --libs openssl)',
+ ],
+ 'libraries': [
+- '<!@(pkg-config --libs-only-l openssl)',
++ '<!@(pkg-config --libs openssl)',
+ ],
+ },
+ },
diff --git a/www/mod_pagespeed/files/patch-url_url__canon__icu.cc b/www/mod_pagespeed/files/patch-url_url__canon__icu.cc
new file mode 100644
index 000000000000..e987ffa19f5d
--- /dev/null
+++ b/www/mod_pagespeed/files/patch-url_url__canon__icu.cc
@@ -0,0 +1,20 @@
+--- url/url_canon_icu.cc.orig 2017-10-07 18:17:57 UTC
++++ url/url_canon_icu.cc
+@@ -130,7 +130,7 @@ void ICUCharsetConverter::ConvertFromUTF
+ UErrorCode err = U_ZERO_ERROR;
+ char* dest = &output->data()[begin_offset];
+ int required_capacity = ucnv_fromUChars(converter_, dest, dest_capacity,
+- input, input_len, &err);
++ reinterpret_cast<const UChar*>(input), input_len, &err);
+ if (err != U_BUFFER_OVERFLOW_ERROR) {
+ output->set_length(begin_offset + required_capacity);
+ return;
+@@ -169,7 +169,7 @@ bool IDNToASCII(const base::char16* src,
+ while (true) {
+ UErrorCode err = U_ZERO_ERROR;
+ UIDNAInfo info = UIDNA_INFO_INITIALIZER;
+- int output_length = uidna_nameToASCII(uidna, src, src_len, output->data(),
++ int output_length = uidna_nameToASCII(uidna, reinterpret_cast<const UChar*>(src), src_len, reinterpret_cast<UChar*>(output->data()),
+ output->capacity(), &info, &err);
+ if (U_SUCCESS(err) && info.errors == 0) {
+ output->set_length(output_length);
diff --git a/www/mod_pagespeed/pkg-descr b/www/mod_pagespeed/pkg-descr
new file mode 100644
index 000000000000..f0e11056168f
--- /dev/null
+++ b/www/mod_pagespeed/pkg-descr
@@ -0,0 +1,7 @@
+mod_pagespeed is an open-source Apache module that automatically optimizes web
+pages and resources on them. It does this by rewriting the resources using
+filters that implement web performance best practices. Webmasters and web
+developers can use mod_pagespeed to improve the performance of their web pages
+when serving content with the Apache HTTP Server.
+
+WWW: https://github.com/pagespeed/mod_pagespeed
diff --git a/www/mod_pagespeed/pkg-plist b/www/mod_pagespeed/pkg-plist
new file mode 100644
index 000000000000..d08d9467a07f
--- /dev/null
+++ b/www/mod_pagespeed/pkg-plist
@@ -0,0 +1,9 @@
+bin/%%AP_NAME%%_js_minify
+%%APACHEMODDIR%%/%%AP_MODULE%%
+%%DOCSDIR%%/mod_%%AP_NAME%%_example
+%%DOCSDIR%%/mod_%%AP_NAME%%_test
+@sample(www,www,0750) %%APACHEETCDIR%%/%%AP_NAME%%.conf.sample
+@sample(www,www,0750) %%APACHEETCDIR%%/%%AP_NAME%%_libraries.conf.sample
+@dir(www,www,) /var/cache/mod_%%AP_NAME%%
+@dir(www,www,) /var/cache/mod_%%AP_NAME%%-alt
+@dir(www,www,) /var/log/%%AP_NAME%%