From f1ec1216bfae00f431d0a807b40d9cf3c83796e6 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 23 Aug 2017 17:12:08 +0200 Subject: add patch for upcoming PHP 7.2.0RC1 and new timelib --- mongodb-pr633.patch | 40 ++++++++++++++++++++++++++++++++++++++++ php-pecl-mongodb.spec | 10 +++++++++- 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 mongodb-pr633.patch diff --git a/mongodb-pr633.patch b/mongodb-pr633.patch new file mode 100644 index 0000000..61d019c --- /dev/null +++ b/mongodb-pr633.patch @@ -0,0 +1,40 @@ +Adapted from + +From ec7463a77b643f533b19079147a952a0d2dd21e3 Mon Sep 17 00:00:00 2001 +From: Derick Rethans +Date: Wed, 16 Aug 2017 10:31:18 +0100 +Subject: [PATCH 1/2] PHPC-997: Handle changes in field names in timelib + 2017.05beta7 + +--- + src/BSON/UTCDateTime.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/src/BSON/UTCDateTime.c b/src/BSON/UTCDateTime.c +index 7f08285f..11055565 100644 +--- a/src/BSON/UTCDateTime.c ++++ b/src/BSON/UTCDateTime.c +@@ -128,7 +128,11 @@ static bool php_phongo_utcdatetime_init_ + + /* The following assignments use the same logic as date_format() in php_date.c */ + sec = datetime_obj->time->sse; ++#if PHP_VERSION_ID >= 70200 ++ usec = (int64_t) floor(datetime_obj->time->us); ++#else + usec = (int64_t) floor(datetime_obj->time->f * 1000000 + 0.5); ++#endif + + intern->milliseconds = (sec * 1000) + (usec / 1000); + intern->initialized = true; +@@ -256,7 +260,11 @@ static PHP_METHOD(UTCDateTime, toDateTim + php_date_initialize(datetime_obj, sec, sec_len, NULL, NULL, 0 TSRMLS_CC); + efree(sec); + ++#if PHP_VERSION_ID >= 70200 ++ datetime_obj->time->us = (intern->milliseconds % 1000) * 1000; ++#else + datetime_obj->time->f = (double) (intern->milliseconds % 1000) / 1000; ++#endif + } /* }}} */ + + /* {{{ proto array MongoDB\BSON\UTCDateTime::jsonSerialize() diff --git a/php-pecl-mongodb.spec b/php-pecl-mongodb.spec index 2b3f7d9..3903373 100644 --- a/php-pecl-mongodb.spec +++ b/php-pecl-mongodb.spec @@ -42,12 +42,15 @@ Name: %{?sub_prefix}php-pecl-%{pecl_name} %global upstream_version 1.3.0 %global upstream_prever beta1 Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} -Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release: 2%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: ASL 2.0 Group: Development/Languages URL: http://pecl.php.net/package/%{pecl_name} Source0: http://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz +# https://github.com/mongodb/mongo-php-driver/pull/633 +Patch0: %{pecl_name}-pr633.patch + BuildRequires: %{?scl_prefix}php-devel > 5.4 BuildRequires: %{?scl_prefix}php-pear BuildRequires: %{?scl_prefix}php-json @@ -132,6 +135,7 @@ sed -e 's/role="test"/role="src"/' \ -i package.xml cd NTS +%patch0 -p1 -b .pr633 # Sanity check, really often broken extver=$(sed -n '/#define PHP_MONGODB_VERSION/{s/.* "//;s/".*$//;p}' php_phongo.h) @@ -321,6 +325,10 @@ exit $ret %changelog +* Wed Aug 23 2017 Remi Collet - 1.3.0~beta1-2 +- add patch for upcoming PHP 7.2.0RC1 and new timelib from + https://github.com/mongodb/mongo-php-driver/pull/633 + * Fri Aug 11 2017 Remi Collet - 1.3.0~beta1-1 - update to 1.3.0beta1 - raise dependency on libbson and mongo-c-driver 1.7.0 -- cgit