diff options
author | Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2019-01-03 19:57:21 +0000 |
---|---|---|
committer | Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2019-01-03 19:57:21 +0000 |
commit | aeb7dcf1ffcd7751af447775fd3fa052b3be22d2 (patch) | |
tree | a13c00994712ec588afb35c1faa8f29a165b8ca1 /databases/php-tarantool | |
parent | Fix MTR_OPTIONS parsing (diff) |
Move databases/php7-tarantool to databases/php-tarantool
Rename php7-tarantool to php-tarantool after php5-tarantool removal
Notes
Notes:
svn path=/head/; revision=489207
Diffstat (limited to 'databases/php-tarantool')
-rw-r--r-- | databases/php-tarantool/Makefile | 22 | ||||
-rw-r--r-- | databases/php-tarantool/distinfo | 3 | ||||
-rw-r--r-- | databases/php-tarantool/files/patch-src-tarantool.c | 14 | ||||
-rw-r--r-- | databases/php-tarantool/files/patch-src-tarantool_msgpack.c | 122 | ||||
-rw-r--r-- | databases/php-tarantool/files/patch-src-utils.c | 13 | ||||
-rw-r--r-- | databases/php-tarantool/pkg-descr | 3 |
6 files changed, 177 insertions, 0 deletions
diff --git a/databases/php-tarantool/Makefile b/databases/php-tarantool/Makefile new file mode 100644 index 000000000000..a5bb5067b42a --- /dev/null +++ b/databases/php-tarantool/Makefile @@ -0,0 +1,22 @@ +# Created by: Veniamin Gvozdikov <vg@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= tarantool +PORTVERSION= 0.3.2 +CATEGORIES= databases +PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX} + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= PECL PHP driver for Tarantool + +LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= php:ext + +CONFIGURE_ARGS= --with-tarantool + +USE_GITHUB= yes +GH_PROJECT= ${PORTNAME}-php + +.include <bsd.port.mk> diff --git a/databases/php-tarantool/distinfo b/databases/php-tarantool/distinfo new file mode 100644 index 000000000000..f403f2c75b7e --- /dev/null +++ b/databases/php-tarantool/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1524259086 +SHA256 (tarantool-tarantool-php-0.3.2_GH0.tar.gz) = a7c71be3ceaeb5b760a9742a39f483c8a5ce2bc15a8bd29fd34bb29957559c25 +SIZE (tarantool-tarantool-php-0.3.2_GH0.tar.gz) = 684980 diff --git a/databases/php-tarantool/files/patch-src-tarantool.c b/databases/php-tarantool/files/patch-src-tarantool.c new file mode 100644 index 000000000000..057cbf33f81a --- /dev/null +++ b/databases/php-tarantool/files/patch-src-tarantool.c @@ -0,0 +1,14 @@ +--- src/tarantool.c.orig 2018-04-18 13:33:56 UTC ++++ src/tarantool.c +@@ -1151,7 +1151,11 @@ PHP_METHOD(Tarantool, __construct) { + memset(&le, 0, sizeof(zend_resource)); + le.type = php_tarantool_list_entry(); + le.ptr = obj; ++#if PHP_VERSION_ID >= 70300 ++ GC_SET_REFCOUNT(&le, 1); ++#else + GC_REFCOUNT(&le) = 1; ++#endif + + assert(plist_id != NULL); + if (zend_hash_update_mem(&EG(persistent_list), plist_id, diff --git a/databases/php-tarantool/files/patch-src-tarantool_msgpack.c b/databases/php-tarantool/files/patch-src-tarantool_msgpack.c new file mode 100644 index 000000000000..94d47e993811 --- /dev/null +++ b/databases/php-tarantool/files/patch-src-tarantool_msgpack.c @@ -0,0 +1,122 @@ +--- src/tarantool_msgpack.c.orig 2018-04-18 13:33:56 UTC ++++ src/tarantool_msgpack.c +@@ -123,15 +123,30 @@ void php_mp_pack_array_recursively(smart + for (; key_index < n; ++key_index) { + data = zend_hash_index_find(ht, key_index); + if (!data || data == val || (Z_TYPE_P(data) == IS_ARRAY && ++#if PHP_VERSION_ID >= 70300 ++ !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE) && ++ GC_IS_RECURSIVE(Z_ARRVAL_P(data)))) { ++#else + ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data)) && + Z_ARRVAL_P(data)->u.v.nApplyCount > 1)) { ++#endif + php_mp_pack_nil(str); + } else { ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_PROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount++; ++#endif + php_mp_pack(str, data); ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_UNPROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount--; ++#endif + } + } + } +@@ -166,15 +181,30 @@ void php_mp_pack_hash_recursively(smart_ + } + data = zend_hash_get_current_data_ex(ht, &pos); + if (!data || data == val || (Z_TYPE_P(data) == IS_ARRAY && ++#if PHP_VERSION_ID >= 70300 ++ !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE) && ++ GC_IS_RECURSIVE(Z_ARRVAL_P(data)))) { ++#else + ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data)) && + Z_ARRVAL_P(data)->u.v.nApplyCount > 1)) { ++#endif + php_mp_pack_nil(str); + } else { ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_PROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount++; ++#endif + php_mp_pack(str, data); ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_UNPROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount--; ++#endif + } + } + } +@@ -408,14 +438,28 @@ size_t php_mp_sizeof_array_recursively(z + for (; key_index < n; ++key_index) { + data = zend_hash_index_find(ht, key_index); + if (!data || data == val || ++#if PHP_VERSION_ID >= 70300 ++ (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE) && GC_IS_RECURSIVE(Z_ARRVAL_P(data)))) { ++#else + (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data)) && Z_ARRVAL_P(data)->u.v.nApplyCount > 1)) { ++#endif + needed += php_mp_sizeof_nil(); + } else { ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_PROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount++; ++#endif + needed += php_mp_sizeof(data); ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_UNPROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount--; ++#endif + } + } + return needed; +@@ -452,14 +496,28 @@ size_t php_mp_sizeof_hash_recursively(zv + } + data = zend_hash_get_current_data_ex(ht, &pos); + if (!data || data == val || ++#if PHP_VERSION_ID >= 70300 ++ (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE) && GC_IS_RECURSIVE(Z_ARRVAL_P(data)))) { ++#else + (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data)) && Z_ARRVAL_P(data)->u.v.nApplyCount > 1)) { ++#endif + needed += php_mp_sizeof_nil(); + } else { ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_PROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount++; ++#endif + needed += php_mp_sizeof(data); ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_UNPROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount--; ++#endif + } + } + return needed; diff --git a/databases/php-tarantool/files/patch-src-utils.c b/databases/php-tarantool/files/patch-src-utils.c new file mode 100644 index 000000000000..ae69f4cb7191 --- /dev/null +++ b/databases/php-tarantool/files/patch-src-utils.c @@ -0,0 +1,13 @@ +--- src/utils.c.orig 2018-04-18 13:33:56 UTC ++++ src/utils.c +@@ -29,8 +29,10 @@ const char *tutils_op_to_string(zval *ob + return "RESOURCE"; + case(IS_REFERENCE): + return "REFERENCE"; ++#if PHP_VERSION_ID < 70300 + case(IS_CONSTANT): + return "CONSTANT"; ++#endif + case(IS_CONSTANT_AST): + return "CONSTANT_AST"; + case(IS_CALLABLE): diff --git a/databases/php-tarantool/pkg-descr b/databases/php-tarantool/pkg-descr new file mode 100644 index 000000000000..7e2d108603b3 --- /dev/null +++ b/databases/php-tarantool/pkg-descr @@ -0,0 +1,3 @@ +PECL PHP driver for Tarantool + +WWW: https://github.com/tarantool/tarantool-php |