- Update to 0.9.4.1

- Fix build with clang on HEAD and 10
- Support StageDir
- Normalize COMMENT
- Add USE_OPENSSL and remove OpenSSL from DISTFILES
- Use clang as the default compiler
- Make portlint happy
- Sync Makefile style with www/chromium

PR:		ports/183529
Submitted by:	Masaki TAGAWA <masaki@club.kyutech.ac.jp> (maintainer)
This commit is contained in:
Steve Wills 2013-11-15 22:22:12 +00:00
parent 23c9e0f223
commit 2727adb975
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=333944
7 changed files with 243 additions and 101 deletions

View file

@ -2,36 +2,37 @@
# $FreeBSD$
PORTNAME= mod_spdy
PORTVERSION= 0.9.3.3
PORTREVISION= 1
PORTVERSION= 0.9.4.1
CATEGORIES= www
MASTER_SITES= http://www.club.kyutech.ac.jp/~masaki/ports/:mod_spdy \
${MASTER_SITE_APACHE_HTTPD}:apache22 \
http://www.openssl.org/source/:openssl
${MASTER_SITE_APACHE_HTTPD}:apache22
DISTFILES= mod_spdy_source_${PORTVERSION}.tar.xz:mod_spdy \
httpd-2.2.22.tar.gz:apache22 \
openssl-1.0.1c.tar.gz:openssl
httpd-2.2.22.tar.gz:apache22
DIST_SUBDIR= ${PORTNAME}
EXTRACT_ONLY= mod_spdy_source_${PORTVERSION}.tar.xz
MAINTAINER= masaki@club.kyutech.ac.jp
COMMENT= A SPDY module for the Apache HTTP server v2.2
COMMENT= SPDY module for the Apache HTTP server v2.2
LICENSE= AL2
BUILD_DEPENDS= greadlink:${PORTSDIR}/sysutils/coreutils \
flock:${PORTSDIR}/sysutils/flock \
svn:${PORTSDIR}/devel/subversion \
curl:${PORTSDIR}/ftp/curl \
bash:${PORTSDIR}/shells/bash
LIB_DEPENDS= execinfo.1:${PORTSDIR}/devel/libexecinfo
USE_XZ= yes
USE_APACHE= 22
USE_PYTHON= 2.6+
USE_GMAKE= yes
ONLY_FOR_ARCHS= amd64 i386
USE_XZ= yes
USE_OPENSSL= yes
USE_APACHE= 22
USE_PYTHON= 2.6-2.7
USE_GMAKE= yes
REINPLACE_ARGS= -i ""
LDFLAGS+= -L${LOCALBASE}/lib
WRKSRC= ${WRKDIR}/${PORTNAME}_source_${PORTVERSION}/mod_spdy/src
CFLAGS+= -fno-stack-protector -Wno-unknown-warning-option -Wno-c++11-extensions -I${OPENSSLINC}
LDFLAGS+= -L${LOCALBASE}/lib -L${OPENSSLLIB}
GYP_DEFINES+= \
use_system_apache_dev=1 \
use_system_zlib=1 \
@ -41,79 +42,108 @@ GYP_DEFINES+= \
system_include_path_execinfo=${LOCALBASE}/include \
include_dirs=${LOCALBASE}/include
OPTIONS_DEFINE= CLANG DEBUG
CLANG_DESC= Build with Clang instead of GCC 4.6+
DEBUG_DESC= Compile with debug symbols and verbose output
SUB_FILES+= mod_spdy.conf
SUB_LIST+= APACHEMODDIR=${APACHEMODDIR}
OPTIONS_DEFAULT= CLANG
OPTIONS_DEFINE= GCC DEBUG
GCC_DESC= Build mod_spdy with GCC 4.6+
NO_STAGE= yes
.include <bsd.port.options.mk>
.if ${OSVERSION} < 900033 || ! ${PORT_OPTIONS:MCLANG}
.if ${OSVERSION} < 900033 || ${PORT_OPTIONS:MGCC}
BUILD_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
CONFIGURE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
MAKE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
.endif
.if ${PORT_OPTIONS:MCLANG}
.if ${OSVERSION} < 900033 || !exists(/usr/bin/clang)
BUILD_DEPENDS+= clang33:${PORTSDIR}/lang/clang33
CC= clang33
CXX= clang++33
.if ${PORT_OPTIONS:MGCC}
USE_GCC?= yes
GYP_DEFINES+= gcc_version=${CXX:S/g++//}
.else
.if ${OSVERSION} < 902000
BUILD_DEPENDS+= ${LOCALBASE}/bin/clang32:${PORTSDIR}/lang/clang32
CC= ${LOCALBASE}/bin/clang32
CXX= ${LOCALBASE}/bin/clang++32
.else
CC= clang
CXX= clang++
.endif
GYP_DEFINES+= clang=1
.else
USE_GCC?= yes
GYP_DEFINES+= gcc_version=${CXX:S/g++//}
.endif
.if ${OSVERSION} < 1000052
LIB_DEPENDS+= libexecinfo.so:${PORTSDIR}/devel/libexecinfo
.endif
.if ${PORT_OPTIONS:MDEBUG}
BUILDTYPE= Release
.else
MAKE_ENV+= V=1
BUILDTYPE= Debug
.else
BUILDTYPE= Release
GYP_DEFINES+= buildtype=Official
.endif
CONFIGURE_ENV+= CC=${CC} \
CXX=${CXX} \
GYP_DEFINES="${GYP_DEFINES}"
# according to portlint the below is passed via bsd.port.mk,
# but 'make -V CONFIGURE_ENV' does not show it:
CONFIGURE_ENV+= CFLAGS="${CFLAGS}" \
CPPFLAGS="${CPPFLAGS}" \
CXXFLAGS="${CXXFLAGS}" \
LDFLAGS="${LDFLAGS}"
MAKE_ENV+= BUILDTYPE=${BUILDTYPE}
CFLAGS+= -Wno-error
SUB_FILES+= mod_spdy.conf
SUB_LIST+= APACHEMODDIR=${APACHEMODDIR}
.include <bsd.port.pre.mk>
.if ${ARCH} == i386 && ${OSVERSION} < 901000
BROKEN= does not link due to libtool not respecting CC
.endif
post-extract:
@${MKDIR} ${WRKSRC}/temp/progress
@${CP} ${DISTDIR}/${DIST_SUBDIR}/httpd-2.2.22.tar.gz ${WRKSRC}/temp/ && \
${TOUCH} ${WRKSRC}/temp/progress/httpd-2.2.22.tar.gz.downloaded
@${CP} ${DISTDIR}/${DIST_SUBDIR}/openssl-1.0.1c.tar.gz ${WRKSRC}/temp/ && \
${TOUCH} ${WRKSRC}/temp/progress/openssl-1.0.1c.tar.gz.downloaded
post-patch:
@${REINPLACE_CMD} -e "s,%%LOCALBASE%%,${LOCALBASE},g" \
${WRKSRC}/base/base.gypi
@${REINPLACE_CMD} -e 's|#!/bin/bash|#!${LOCALBASE}/bin/bash|' \
@${REINPLACE_CMD} -e 's,#!/bin/bash,#!${LOCALBASE}/bin/bash,' \
-e 's,%%FILESDIR%%,${FILESDIR},g' \
-e 's,%%OPENSSLBASE%%,${OPENSSLBASE},g' \
${WRKSRC}/build_modssl_with_npn.sh
.if ${PORT_OPTIONS:MGCC}
@${REINPLACE_CMD} -e 's,%%GCCCXXFLAGS%%,-I${LOCALBASE}/lib/gcc${CXX:S/g++//}/include,g' \
-e 's,%%GCCLDFLAGS%%,-L${LOCALBASE}/lib/gcc${CXX:S/g++//},g' \
${WRKSRC}/Makefile
@${REINPLACE_CMD} -e 's,%%GCCCXXFLAGS%%,-I${LOCALBASE}/lib/gcc${CXX:S/g++//}/include,g' \
-e 's,%%GCCLDFLAGS%%,-L${LOCALBASE}/lib/gcc${CXX:S/g++//},g' \
${WRKSRC}/tools/gyp/pylib/gyp/generator/make.py
.else
@${REINPLACE_CMD} -e 's,%%GCCCXXFLAGS%%,,g' \
-e 's,%%GCCLDFLAGS%%,,g' \
${WRKSRC}/Makefile
@${REINPLACE_CMD} -e 's,%%GCCCXXFLAGS%%,,g' \
-e 's,%%GCCLDFLAGS%%,,g' \
${WRKSRC}/tools/gyp/pylib/gyp/generator/make.py
.endif
do-configure:
@cd ${WRKSRC} && \
GYP_DEFINES="${GYP_DEFINES}" ${PYTHON_CMD} \
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \
../../depot_tools/gclient.py runhooks
pre-build:
@cd ${WRKSRC} && \
BUILDROOT=${WRKSRC}/temp ${WRKSRC}/build_modssl_with_npn.sh
cd ${WRKSRC} && CONFIGURE_ENV='${CONFIGURE_ENV}' BUILDROOT=${WRKSRC}/temp \
${WRKSRC}/build_modssl_with_npn.sh
do-install:
@${INSTALL} ${WRKSRC}/out/${BUILDTYPE}/libmod_spdy.so ${PREFIX}/${APACHEMODDIR}/mod_spdy.so
@${INSTALL} ${WRKSRC}/mod_ssl.so ${PREFIX}/${APACHEMODDIR}/mod_ssl_with_npn.so
@${INSTALL_DATA} ${WRKDIR}/mod_spdy.conf ${PREFIX}/${APACHEETCDIR}/Includes
post-install:
@${REINPLACE_CMD} -e 's/mod_ssl.so/mod_ssl_with_npn.so/g' ${PREFIX}/${APACHEETCDIR}/httpd.conf
${MKDIR} ${STAGEDIR}/${PREFIX}/${APACHEMODDIR} \
${STAGEDIR}/${PREFIX}/${APACHEETCDIR}/Includes
${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libmod_spdy.so \
${STAGEDIR}/${PREFIX}/${APACHEMODDIR}/mod_spdy.so
${INSTALL_LIB} ${WRKSRC}/mod_ssl.so \
${STAGEDIR}/${PREFIX}/${APACHEMODDIR}/mod_ssl_with_npn.so
${INSTALL_DATA} ${WRKDIR}/mod_spdy.conf \
${STAGEDIR}/${PREFIX}/${APACHEETCDIR}/Includes/mod_spdy.conf
.include <bsd.port.post.mk>

View file

@ -1,6 +1,4 @@
SHA256 (mod_spdy/mod_spdy_source_0.9.3.3.tar.xz) = 584ab9b3e91ac9d5b5f31ae5ff899eb1739c4dcf50ea572b94a7a9a7e450ccfc
SIZE (mod_spdy/mod_spdy_source_0.9.3.3.tar.xz) = 5069100
SHA256 (mod_spdy/mod_spdy_source_0.9.4.1.tar.xz) = 832ae76219ca4fe4b10ccb989e5fe53b3e5000f1ea505fda55208bded6e672a9
SIZE (mod_spdy/mod_spdy_source_0.9.4.1.tar.xz) = 5465256
SHA256 (mod_spdy/httpd-2.2.22.tar.gz) = 74c1ffffefe1a502339b004ad6488fbd858eb425a05968cd67c05695dbc0fe7c
SIZE (mod_spdy/httpd-2.2.22.tar.gz) = 7200529
SHA256 (mod_spdy/openssl-1.0.1c.tar.gz) = 2a9eb3cd4e8b114eb9179c0d3884d61658e7d8e8bf4984798a5f5bd48e325ebe
SIZE (mod_spdy/openssl-1.0.1c.tar.gz) = 4457113

View file

@ -0,0 +1,33 @@
--- Makefile.orig 2013-10-29 15:19:19.000000000 +0900
+++ Makefile 2013-10-31 18:45:36.000000000 +0900
@@ -54,9 +54,9 @@
CC.target ?= $(CC)
CFLAGS.target ?= $(CFLAGS)
CXX.target ?= $(CXX)
-CXXFLAGS.target ?= $(CXXFLAGS)
+CXXFLAGS.target ?= %%GCCCXXFLAGS%% $(CXXFLAGS)
LINK.target ?= $(LINK)
-LDFLAGS.target ?= $(LDFLAGS)
+LDFLAGS.target ?= %%GCCLDFLAGS%% $(LDFLAGS)
AR.target ?= $(AR)
ARFLAGS.target ?= crs
@@ -64,12 +64,12 @@
# in gyp's make.py where ARFLAGS.host etc. is computed.
# TODO(evan): move all cross-compilation logic to gyp-time so we don't need
# to replicate this environment fallback in make as well.
-CC.host ?= gcc
-CFLAGS.host ?=
-CXX.host ?= g++
-CXXFLAGS.host ?=
-LINK.host ?= g++
-LDFLAGS.host ?=
+CC.host ?= $(CC)
+CFLAGS.host ?= $(CFLAGS)
+CXX.host ?= $(CXX)
+CXXFLAGS.host ?= %%GCCCXXFLAGS%% $(CXXFLAGS)
+LINK.host ?= $(LINK)
+LDFLAGS.host ?= %%GCCLDFLAGS%% $(LDFLAGS)
AR.host ?= ar
ARFLAGS.host := crs

View file

@ -1,5 +1,5 @@
--- build_modssl_with_npn.sh.org 2012-03-31 16:28:55.660831000 +0900
+++ build_modssl_with_npn.sh 2012-03-31 21:14:56.155134872 +0900
--- build_modssl_with_npn.sh.orig 2013-10-29 15:17:22.000000000 +0900
+++ build_modssl_with_npn.sh 2013-10-30 16:12:09.000000000 +0900
@@ -33,7 +33,7 @@
fi
@ -18,8 +18,20 @@
echo "md5sum mismatch for $2"
do_cleanup
fi
@@ -105,9 +105,6 @@
OPENSSL_INST_ROOT=${OPENSSL_SRC_ROOT}_install
@@ -93,31 +93,22 @@
fi
}
-OPENSSL_SRC_TGZ_URL="http://www.openssl.org/source/openssl-1.0.1c.tar.gz"
APACHE_HTTPD_SRC_TGZ_URL="http://archive.apache.org/dist/httpd/httpd-2.2.22.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)
@ -28,39 +40,63 @@
cp $APACHE_HTTPD_MODSSL_NPN_PATCH_PATH $BUILDROOT/$APACHE_HTTPD_MODSSL_NPN_PATCH
pushd $BUILDROOT >/dev/null
@@ -140,9 +137,9 @@
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
+ ./config no-shared -fPIC --openssldir=$BUILDROOT/$OPENSSL_INST_ROOT
if [ $? -ne 0 ]; then
- echo "Failed. Build log at $OPENSSL_BUILDLOG."
+ echo "Failed at configuring OpenSSL."
do_cleanup
fi
echo "done"
@@ -155,9 +152,9 @@
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
+ make install
if [ $? -ne 0 ]; then
- echo "Failed. Build log at $OPENSSL_BUILDLOG."
+ echo "Failed at building OpenSSL."
do_cleanup
fi
echo "done"
@@ -167,7 +164,6 @@
echo "Already built OpenSSL."
fi
-rm -f "$OPENSSL_BUILDLOG"
-download_file $OPENSSL_SRC_TGZ_URL $OPENSSL_SRC_TGZ ae412727c8c15b67880aef7bd2999b2e
download_file $APACHE_HTTPD_SRC_TGZ_URL $APACHE_HTTPD_SRC_TGZ d77fa5af23df96a8af68ea8114fa6ce1
echo ""
@@ -185,11 +181,11 @@
-uncompress_file $OPENSSL_SRC_TGZ
uncompress_file $APACHE_HTTPD_SRC_TGZ
if [ ! -f "$PROGRESS_DIR/modssl_patched" ]; then
@@ -137,45 +128,6 @@
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 ... "
@@ -190,11 +142,11 @@
# 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
@ -68,14 +104,14 @@
+ chmod 755 configure
- ./configure --enable-ssl=shared --with-ssl=$BUILDROOT/$OPENSSL_INST_ROOT >> $APACHE_HTTPD_BUILDLOG
+ ./configure --enable-ssl=shared --with-ssl=$BUILDROOT/$OPENSSL_INST_ROOT
+ eval ${CONFIGURE_ENV} ./configure --enable-ssl=shared --with-ssl=%%OPENSSLBASE%%
if [ $? -ne 0 ]; then
- echo "Failed. Build log at $APACHE_HTTPD_BUILDLOG."
+ echo "Failed at configuring Apache mod_ssl."
do_cleanup
fi
echo "done"
@@ -202,9 +198,9 @@
@@ -207,9 +159,9 @@
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) ... "
@ -87,7 +123,7 @@
do_cleanup
fi
echo "done"
@@ -214,8 +210,6 @@
@@ -219,8 +171,6 @@
echo "Already built Apache mod_ssl."
fi

View file

@ -0,0 +1,11 @@
--- third_party/chromium/src/base/logging.h.org 2013-10-29 15:17:59.000000000 +0900
+++ third_party/chromium/src/base/logging.h 2013-10-29 23:39:25.000000000 +0900
@@ -5,6 +5,8 @@
#ifndef BASE_LOGGING_H_
#define BASE_LOGGING_H_
+#undef strtoul
+
#include <cassert>
#include <string>
#include <cstring>

View file

@ -1,17 +1,51 @@
--- tools/gyp/pylib/gyp/generator/make.py.org 2012-03-31 16:29:12.063738000 +0900
+++ tools/gyp/pylib/gyp/generator/make.py 2012-03-31 16:59:21.541770196 +0900
@@ -129,11 +129,11 @@
--- tools/gyp/pylib/gyp/generator/make.py.orig 2013-10-29 15:18:11.000000000 +0900
+++ tools/gyp/pylib/gyp/generator/make.py 2013-10-31 18:48:40.000000000 +0900
@@ -86,7 +86,7 @@
else:
operating_system = flavor
if flavor == 'android':
- operating_system = 'linux' # Keep this legacy behavior for now.
+ operating_system = 'freebsd' # Keep this legacy behavior for now.
default_variables.setdefault('OS', operating_system)
default_variables.setdefault('SHARED_LIB_SUFFIX', '.so')
default_variables.setdefault('SHARED_LIB_DIR','$(builddir)/lib.$(TOOLSET)')
@@ -258,9 +258,9 @@
CC.target ?= $(CC)
CFLAGS.target ?= $(CFLAGS)
CXX.target ?= $(CXX)
-CXXFLAGS.target ?= $(CXXFLAGS)
+CXXFLAGS.target ?= %%GCCCXXFLAGS%% $(CXXFLAGS)
LINK.target ?= $(LINK)
-LDFLAGS.target ?= $(LDFLAGS)
+LDFLAGS.target ?= %%GCCLDFLAGS%% $(LDFLAGS)
AR.target ?= $(AR)
ARFLAGS.target ?= %(ARFLAGS.target)s
@@ -268,12 +268,12 @@
# in gyp's make.py where ARFLAGS.host etc. is computed.
# TODO(evan): move all cross-compilation logic to gyp-time so we don't need
# to replicate this environment fallback in make as well.
-CC.host ?= gcc
+CC.host ?= cc
CFLAGS.host ?=
-CFLAGS.host ?=
-CXX.host ?= g++
+CXX.host ?= c++
CXXFLAGS.host ?=
-CXXFLAGS.host ?=
-LINK.host ?= g++
+LINK.host ?= c++
LDFLAGS.host ?=
-LDFLAGS.host ?=
+CC.host ?= $(CC)
+CFLAGS.host ?= $(CFLAGS)
+CXX.host ?= $(CXX)
+CXXFLAGS.host ?= %%GCCCXXFLAGS%% $(CXXFLAGS)
+LINK.host ?= $(LINK)
+LDFLAGS.host ?= %%GCCLDFLAGS%% $(LDFLAGS)
AR.host ?= ar
ARFLAGS.host := %(ARFLAGS.host)s
@@ -1750,7 +1750,7 @@
return modules
# Retrieve the default value of 'SHARED_LIB_SUFFIX'
- params = {'flavor': 'linux'}
+ params = {'flavor': 'freebsd'}
default_variables = {}
CalculateVariables(default_variables, params)