Index: branches/2019Q1/www/mod_pagespeed/Makefile =================================================================== --- branches/2019Q1/www/mod_pagespeed/Makefile (revision 490804) +++ branches/2019Q1/www/mod_pagespeed/Makefile (revision 490805) @@ -1,200 +1,200 @@ # $FreeBSD$ PORTNAME= mod_pagespeed PORTVERSION= 1.12.34.2 -PORTREVISION= 17 +PORTREVISION= 18 PORTEPOCH= 1 CATEGORIES= www devel MASTER_SITES= LOCAL/mmokhi:boringssl,chromium_base,chromium_build,googleurl,gflags_arch,gflags_src,libjpeg_turbo_src,yasm_patched,libwebp,modpb64 \ https://dl.google.com/closure-compiler/:closurezip PKGNAMEPREFIX= ${APACHE_PKGNAMEPREFIX} DISTFILES= ${NON_GH_DISTS} DIST_SUBDIR= ${PORTNAME} 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@${PY_FLAVOR} \ 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_video.so:graphics/opencv USES= apache:2.2+ compiler:c++14-lang gperf jpeg gmake localbase \ pkgconfig python:2.7 shebangfix ssl tar:xz 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 \ support_posix_shared_mem=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/apache24 \ 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= apache:incubator-pagespeed-mod: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 \ apache:incubator-pagespeed-drp: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 \ apache:incubator-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 \ apache:incubator-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 \ apache:incubator-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}/${DIST_SUBDIR}/${_D:C/:[^-:][^:]*$//} \ ${EXTRACT_AFTER_ARGS} -C ${WRKSRC_${_D:S/^${_D:C/:[^:]+$//}//:S/^://}} . endfor ${CP} ${DISTDIR}/${DIST_SUBDIR}/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 ${WRKSRC}/third_party/serf/select_openssl.gyp ${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 apache24 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 apache24 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 Index: branches/2019Q1/www/mod_pagespeed/files/patch-third__party_grpc_src_src_core_lib_security_credentials_jwt_jwt__verifier.c =================================================================== --- branches/2019Q1/www/mod_pagespeed/files/patch-third__party_grpc_src_src_core_lib_security_credentials_jwt_jwt__verifier.c (nonexistent) +++ branches/2019Q1/www/mod_pagespeed/files/patch-third__party_grpc_src_src_core_lib_security_credentials_jwt_jwt__verifier.c (revision 490805) @@ -0,0 +1,44 @@ +--- third_party/grpc/src/src/core/lib/security/credentials/jwt/jwt_verifier.c.orig 2018-12-27 21:47:56 UTC ++++ third_party/grpc/src/src/core/lib/security/credentials/jwt/jwt_verifier.c +@@ -467,6 +467,7 @@ static EVP_PKEY *pkey_from_jwk(const grp + const grpc_json *key_prop; + RSA *rsa = NULL; + EVP_PKEY *result = NULL; ++ BIGNUM *ee = NULL, *nn = NULL; + + GPR_ASSERT(kty != NULL && json != NULL); + if (strcmp(kty, "RSA") != 0) { +@@ -480,14 +481,29 @@ static EVP_PKEY *pkey_from_jwk(const grp + } + for (key_prop = json->child; key_prop != NULL; key_prop = key_prop->next) { + if (strcmp(key_prop->key, "n") == 0) { +- rsa->n = bignum_from_base64(validate_string_field(key_prop, "n")); +- if (rsa->n == NULL) goto end; ++ BIGNUM *n = bignum_from_base64(validate_string_field(key_prop, "n")); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ rsa->n = n; ++#else ++ RSA_set0_key(rsa, &n, NULL, NULL); ++#endif ++ if (n == NULL) goto end; + } else if (strcmp(key_prop->key, "e") == 0) { +- rsa->e = bignum_from_base64(validate_string_field(key_prop, "e")); +- if (rsa->e == NULL) goto end; ++ BIGNUM *e = bignum_from_base64(validate_string_field(key_prop, "e")); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ rsa->e = e; ++#else ++ RSA_set0_key(rsa, NULL, &e, NULL); ++#endif ++ if (e == NULL) goto end; + } + } ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if (rsa->e == NULL || rsa->n == NULL) { ++#else ++ RSA_get0_key(rsa, &nn, &ee, NULL); ++ if (ee == NULL || nn == NULL) { ++#endif + gpr_log(GPR_ERROR, "Missing RSA public key field."); + goto end; + } Property changes on: branches/2019Q1/www/mod_pagespeed/files/patch-third__party_grpc_src_src_core_lib_security_credentials_jwt_jwt__verifier.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2019Q1/www/mod_pagespeed/files/patch-third__party_serf_instaweb__ssl__buckets.c =================================================================== --- branches/2019Q1/www/mod_pagespeed/files/patch-third__party_serf_instaweb__ssl__buckets.c (revision 490804) +++ branches/2019Q1/www/mod_pagespeed/files/patch-third__party_serf_instaweb__ssl__buckets.c (revision 490805) @@ -1,18 +1,158 @@ --- third_party/serf/instaweb_ssl_buckets.c.orig 2017-06-08 22:22:39 UTC +++ third_party/serf/instaweb_ssl_buckets.c -@@ -1697,11 +1697,15 @@ int serf_ssl_cert_depth(const serf_ssl_c +@@ -253,7 +253,11 @@ apps_ssl_info_callback(const SSL *s, int + /* Returns the amount read. */ + static int bio_bucket_read(BIO *bio, char *in, int inlen) + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + serf_ssl_context_t *ctx = bio->ptr; ++#else ++ serf_ssl_context_t *ctx = BIO_get_data(bio); ++#endif + const char *data; + apr_status_t status; + apr_size_t len; +@@ -297,7 +301,11 @@ static int bio_bucket_read(BIO *bio, cha + /* Returns the amount written. */ + static int bio_bucket_write(BIO *bio, const char *in, int inl) + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + serf_ssl_context_t *ctx = bio->ptr; ++#else ++ serf_ssl_context_t *ctx = BIO_get_data(bio); ++#endif + serf_bucket_t *tmp; + + serf__log(SSL_VERBOSE, __FILE__, "bio_bucket_write called for %d bytes\n", +@@ -325,7 +333,11 @@ static int bio_bucket_write(BIO *bio, co + /* Returns the amount read. */ + static int bio_file_read(BIO *bio, char *in, int inlen) + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + apr_file_t *file = bio->ptr; ++#else ++ apr_file_t *file = BIO_get_data(bio); ++#endif + apr_status_t status; + apr_size_t len; + +@@ -350,7 +362,11 @@ static int bio_file_read(BIO *bio, char + /* Returns the amount written. */ + static int bio_file_write(BIO *bio, const char *in, int inl) + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + apr_file_t *file = bio->ptr; ++#else ++ apr_file_t *file = BIO_get_data(bio); ++#endif + apr_size_t nbytes; + + BIO_clear_retry_flags(bio); +@@ -368,10 +384,16 @@ static int bio_file_gets(BIO *bio, char + + static int bio_bucket_create(BIO *bio) + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + bio->shutdown = 1; + bio->init = 1; + bio->num = -1; + bio->ptr = NULL; ++#else ++ BIO_set_shutdown(bio, 1); ++ BIO_set_init(bio, 1); ++ BIO_set_data(bio, NULL); ++#endif + + return 1; + } +@@ -405,6 +427,7 @@ static long bio_bucket_ctrl(BIO *bio, in + return ret; + } + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + static BIO_METHOD bio_bucket_method = { + BIO_TYPE_MEM, + "Serf SSL encryption and decryption buckets", +@@ -434,6 +457,11 @@ static BIO_METHOD bio_file_method = { + NULL /* sslc does not have the callback_ctrl field */ + #endif + }; ++#else ++static BIO_METHOD *bio_bucket_method = NULL; ++static BIO_METHOD *bio_file_method = NULL; ++#endif ++ + + typedef enum san_copy_t { + EscapeNulAndCopy = 0, +@@ -1088,7 +1116,9 @@ static void init_ssl_libraries(void) + } + #endif + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + CRYPTO_malloc_init(); ++#endif + ERR_load_crypto_strings(); + SSL_load_error_strings(); + SSL_library_init(); +@@ -1172,8 +1202,22 @@ static int ssl_need_client_cert(SSL *ssl + continue; + } + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + bio = BIO_new(&bio_file_method); + bio->ptr = cert_file; ++#else ++ if (bio_file_method == NULL) { ++ bio_file_method = BIO_meth_new(BIO_TYPE_FILE, "Wrapper around APR file structures"); ++ BIO_meth_set_write(bio_file_method, bio_file_write); ++ BIO_meth_set_read(bio_file_method, bio_file_read); ++ BIO_meth_set_gets(bio_file_method, bio_file_gets); ++ BIO_meth_set_ctrl(bio_file_method, bio_bucket_ctrl); ++ BIO_meth_set_create(bio_file_method, bio_bucket_create); ++ BIO_meth_set_destroy(bio_file_method, bio_bucket_destroy); ++ } ++ bio = BIO_new(bio_file_method); ++ BIO_set_data(bio, cert_file); ++#endif + + ctx->cert_path = cert_path; + p12 = d2i_PKCS12_bio(bio, NULL); +@@ -1351,8 +1395,21 @@ static serf_ssl_context_t *ssl_init_cont + disable_compression(ssl_ctx); + + ssl_ctx->ssl = SSL_new(ssl_ctx->ctx); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + ssl_ctx->bio = BIO_new(&bio_bucket_method); + ssl_ctx->bio->ptr = ssl_ctx; ++#else ++ if (bio_bucket_method == NULL) { ++ bio_bucket_method = BIO_meth_new(BIO_TYPE_MEM, "Serf SSL encryption and decryption buckets"); ++ BIO_meth_set_write(bio_bucket_method, bio_bucket_write); ++ BIO_meth_set_read(bio_bucket_method, bio_bucket_read); ++ BIO_meth_set_ctrl(bio_bucket_method, bio_bucket_ctrl); ++ BIO_meth_set_create(bio_bucket_method, bio_bucket_create); ++ BIO_meth_set_destroy(bio_bucket_method, bio_bucket_destroy); ++ } ++ ssl_ctx->bio = BIO_new(bio_bucket_method); ++ BIO_set_data(ssl_ctx->bio, ssl_ctx); ++#endif + + SSL_set_bio(ssl_ctx->ssl, ssl_ctx->bio, ssl_ctx->bio); + +@@ -1697,11 +1754,15 @@ int serf_ssl_cert_depth(const serf_ssl_c int serf_ssl_check_host(const serf_ssl_certificate_t *cert, const char* hostname) { +#if TSI_OPENSSL_ALPN_SUPPORT == 0 + return (-1); +#else return X509_check_host(cert->ssl_cert, hostname, strlen(hostname), 0 /* we don't need to set any flags */, NULL /* we don't need the SAN or CN extracted*/); +#endif } apr_hash_t *serf_ssl_cert_issuer( Index: branches/2019Q1 =================================================================== --- branches/2019Q1 (revision 490804) +++ branches/2019Q1 (revision 490805) Property changes on: branches/2019Q1 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r490804