From c3a4b99dbc5d5672c77bcfda765f4fb5496e19ba Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 16 Apr 2018 11:35:01 +0200 Subject: update to 0.5.1, bundled libbrotli 1.0.4 open https://github.com/kjdev/php-ext-brotli/pull/9 fix version --- 6.patch | 121 -------------------------------------------------------- REFLECTION | 2 +- php-brotli.spec | 26 +++++++----- 3 files changed, 18 insertions(+), 131 deletions(-) delete mode 100644 6.patch diff --git a/6.patch b/6.patch deleted file mode 100644 index 4d826d8..0000000 --- a/6.patch +++ /dev/null @@ -1,121 +0,0 @@ -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 diff --git a/REFLECTION b/REFLECTION index c5acc3c..6b38072 100644 --- a/REFLECTION +++ b/REFLECTION @@ -1,4 +1,4 @@ -Extension [ extension #77 brotli version 0.5.0 ] { +Extension [ extension #77 brotli version 0.5.1 ] { - Constants [3] { Constant [ integer BROTLI_GENERIC ] { 0 } diff --git a/php-brotli.spec b/php-brotli.spec index b995a0d..2f40537 100644 --- a/php-brotli.spec +++ b/php-brotli.spec @@ -6,6 +6,10 @@ # # Please, preserve the changelog entries # + +# we don't want -z defs linker flag +%undefine _strict_symbol_defs_build + %if 0%{?scl:1} %global sub_prefix %{scl_prefix} %scl_package php-brotli @@ -13,13 +17,13 @@ %global pkg_name %{name} %endif -%if 0%{?fedora} >= 25 +%if 0%{?fedora} >= 29 || 0%{?rhel} >= 8 %global with_libbrotli 1 %else %global with_libbrotli 0 %endif -%global gh_commit dd31e7026e320a6647c2a8ce98943dbfb8cf2060 +%global gh_commit 1c275034502060b385a5abdc130538ec8499078e %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_owner kjdev %global gh_project php-ext-brotli @@ -30,9 +34,9 @@ Summary: Brotli Extension for PHP Name: %{?sub_prefix}php-%{pecl_name} -Version: 0.5.0 +Version: 0.5.1 %if 0%{?gh_date:1} -Release: 0.3.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release: 1%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} %else Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} %endif @@ -43,14 +47,12 @@ Source0: %{pkg_name}-%{version}-%{gh_short}.tgz # retrieve a recursive git snapshot with submodule Source1: makesrc.sh -# https://github.com/kjdev/php-ext-brotli/pull/6 -Patch0: https://patch-diff.githubusercontent.com/raw/kjdev/php-ext-brotli/pull/6.patch - +BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel %if %{?with_libbrotli} BuildRequires: brotli-devel >= 0.6.0 %else -Provides: bundled(brotli) = 1.0.1 +Provides: bundled(brotli) = 1.0.4 %endif Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} @@ -94,7 +96,6 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO mv %{gh_project}-%{gh_commit} NTS cd NTS -%patch0 -p1 # replace symlink rm LICENSE @@ -103,6 +104,9 @@ mv brotli/LICENSE . %if %{?with_libbrotli} # Use the system library mv brotli tests +%else +# See https://github.com/kjdev/php-ext-brotli/pull/9 +sed -e '/BROTLI_LIB_VERSION/s/1.0.1/1.0.4/' -i config.m4 %endif # Sanity check, really often broken @@ -219,6 +223,10 @@ REPORT_EXIT_STATUS=1 \ %changelog +* Mon Apr 16 2018 Remi Collet - 0.5.1-1 +- update to 0.5.1, bundled libbrotli 1.0.4 +- open https://github.com/kjdev/php-ext-brotli/pull/9 fix version + * Thu Nov 9 2017 Remi Collet - 0.5.0-1 - new package, version 0.5.0, bundled libbrotli 1.0.1 - add patch to build with system libbrotli -- cgit