From e4055c16c0de103b2893290b36e5aa815e4d0186 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 9 Nov 2017 15:44:45 +0100 Subject: New package (gh#88) --- 6.patch | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 6.patch (limited to '6.patch') diff --git a/6.patch b/6.patch new file mode 100644 index 0000000..4d826d8 --- /dev/null +++ b/6.patch @@ -0,0 +1,121 @@ +From 50e219b0df0d66357dfd504475a041b545d9330d Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Thu, 9 Nov 2017 14:31:44 +0100 +Subject: [PATCH] allow to use system broti library + +--- + config.m4 | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++---------- + php_brotli.h | 1 - + 2 files changed, 56 insertions(+), 12 deletions(-) + +diff --git a/config.m4 b/config.m4 +index c7f7a4c..5010df0 100644 +--- a/config.m4 ++++ b/config.m4 +@@ -1,38 +1,83 @@ + dnl config.m4 for extension brotli + +-dnl Check PHP version: ++dnl Check PHP version ID: + AC_MSG_CHECKING(PHP version) + if test ! -z "$phpincludedir"; then +- PHP_VERSION=`grep 'PHP_VERSION ' $phpincludedir/main/php_version.h | sed -e 's/.*"\([[0-9\.]]*\)".*/\1/g' 2>/dev/null` ++ PHP_VERSION_ID=`grep 'PHP_VERSION_ID' $phpincludedir/main/php_version.h | sed -e 's/.* \([[0-9]]*\)/\1/g' 2>/dev/null` + elif test ! -z "$PHP_CONFIG"; then +- PHP_VERSION=`$PHP_CONFIG --version 2>/dev/null` ++ PHP_VERSION_ID=`$PHP_CONFIG --vernum 2>/dev/null` + fi + +-if test x"$PHP_VERSION" = "x"; then ++if test x"$PHP_VERSION_ID" = "x"; then + AC_MSG_WARN([none]) + else +- PHP_MAJOR_VERSION=`echo $PHP_VERSION | sed -e 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/g' 2>/dev/null` +- PHP_MINOR_VERSION=`echo $PHP_VERSION | sed -e 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/g' 2>/dev/null` +- PHP_RELEASE_VERSION=`echo $PHP_VERSION | sed -e 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/g' 2>/dev/null` +- AC_MSG_RESULT([$PHP_VERSION]) ++ AC_MSG_RESULT($PHP_VERSION_ID) + fi + +-if test $PHP_MAJOR_VERSION -lt 5; then ++if test $PHP_VERSION_ID -lt 50000; then + AC_MSG_ERROR([need at least PHP 5 or newer]) + fi + + PHP_ARG_ENABLE(brotli, whether to enable brotli support, + [ --enable-brotli Enable brotli support]) + ++PHP_ARG_WITH(libbrotli, whether to use system brotli library, ++[ --with-libbrotli=DIR Use libbrotli], no, no) ++ + if test "$PHP_BROTLI" != "no"; then + ++ BROTLI_MIN_VERSION=0.6 ++ ++ if test "$PHP_LIBBROTLI" != "no"; then ++ AC_PATH_PROG(PKG_CONFIG, pkg-config, no) ++ ++ AC_MSG_CHECKING(for libbrotlienc) ++ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libbrotlienc; then ++ if $PKG_CONFIG libbrotlienc --atleast-version $BROTLI_MIN_VERSION; then ++ LIBBROTLIENC_CFLAGS=`$PKG_CONFIG libbrotlienc --cflags` ++ LIBBROTLIENC_LIBS=`$PKG_CONFIG libbrotlienc --libs` ++ LIBBROTLIENC_VERSION=`$PKG_CONFIG libbrotlienc --modversion` ++ AC_MSG_RESULT(from pkgconfig: version $LIBBROTLIENC_VERSION found) ++ else ++ AC_MSG_ERROR(system libbrotlienc must be upgraded to version >= $BROTLI_MIN_VERSION) ++ fi ++ else ++ AC_MSG_ERROR(system libbrotlienc not found) ++ fi ++ PHP_EVAL_INCLINE($LIBBROTLIENC_CFLAGS) ++ PHP_EVAL_LIBLINE($LIBBROTLIENC_LIBS, BROTLI_SHARED_LIBADD) ++ ++ AC_MSG_CHECKING(for libbrotlidec) ++ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libbrotlidec; then ++ if $PKG_CONFIG libbrotlidec --atleast-version $BROTLI_MIN_VERSION; then ++ LIBBROTLIDEC_CFLAGS=`$PKG_CONFIG libbrotlidec --cflags` ++ LIBBROTLIDEC_LIBS=`$PKG_CONFIG libbrotlidec --libs` ++ LIBBROTLIDEC_VERSION=`$PKG_CONFIG libbrotlidec --modversion` ++ AC_MSG_RESULT(from pkgconfig: version $LIBBROTLIDEC_VERSION found) ++ else ++ AC_MSG_ERROR(system libbrotlienc must be upgraded to version >= $BROTLI_MIN_VERSION) ++ fi ++ else ++ AC_MSG_ERROR(system libbrotlienc not found) ++ fi ++ PHP_EVAL_INCLINE($LIBBROTLIDEC_CFLAGS) ++ PHP_EVAL_LIBLINE($LIBBROTLIDEC_LIBS, BROTLI_SHARED_LIBADD) ++ AC_DEFINE_UNQUOTED(BROTLI_LIB_VERSION, "$LIBBROTLIDEC_VERSION", [system library version]) ++ else ++ AC_MSG_CHECKING(for brotli) ++ AC_MSG_RESULT(use bundled copy) ++ AC_DEFINE_UNQUOTED(BROTLI_LIB_VERSION, "1.0.1", [bundled library version]) ++ + BROTLI_COMMON_SOURCES="brotli/c/common/dictionary.c" + BROTLI_ENC_SOURCES="brotli/c/enc/backward_references.c brotli/c/enc/backward_references_hq.c brotli/c/enc/bit_cost.c brotli/c/enc/block_splitter.c brotli/c/enc/brotli_bit_stream.c brotli/c/enc/cluster.c brotli/c/enc/compress_fragment.c brotli/c/enc/compress_fragment_two_pass.c brotli/c/enc/dictionary_hash.c brotli/c/enc/encode.c brotli/c/enc/entropy_encode.c brotli/c/enc/histogram.c brotli/c/enc/literal_cost.c brotli/c/enc/memory.c brotli/c/enc/metablock.c brotli/c/enc/static_dict.c brotli/c/enc/utf8_util.c" + BROTLI_DEC_SOURCES="brotli/c/dec/bit_reader.c brotli/c/dec/decode.c brotli/c/dec/huffman.c brotli/c/dec/state.c" ++ fi + +- PHP_SUBST(BROTLI_SHARED_LIBADD) ++ PHP_SUBST(BROTLI_SHARED_LIBADD) + +- PHP_NEW_EXTENSION(brotli, brotli.c $BROTLI_COMMON_SOURCES $BROTLI_ENC_SOURCES $BROTLI_DEC_SOURCES, $ext_shared) ++ PHP_NEW_EXTENSION(brotli, brotli.c $BROTLI_COMMON_SOURCES $BROTLI_ENC_SOURCES $BROTLI_DEC_SOURCES, $ext_shared) + ++ if test -n "$BROTLI_COMMON_SOURCES" ; then + PHP_ADD_INCLUDE([$ext_srcdir/brotli/c/include]) ++ fi + fi +diff --git a/php_brotli.h b/php_brotli.h +index 4405001..773af76 100644 +--- a/php_brotli.h ++++ b/php_brotli.h +@@ -6,7 +6,6 @@ extern "C" { + #endif + + #define BROTLI_EXT_VERSION "0.5.0" +-#define BROTLI_LIB_VERSION "1.0.1" + + extern zend_module_entry brotli_module_entry; + #define phpext_brotli_ptr &brotli_module_entry -- cgit