Skip to content

Commit

Permalink
devel/php-gearman: update to 2.0.6
Browse files Browse the repository at this point in the history
Also, add PHP 7.4 patches
  • Loading branch information
mmoll committed Aug 12, 2020
1 parent 3ae9430 commit 8f7cf67
Show file tree
Hide file tree
Showing 15 changed files with 354 additions and 7 deletions.
5 changes: 2 additions & 3 deletions devel/php-gearman/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# $NetBSD: Makefile,v 1.18 2020/05/22 10:56:04 adam Exp $

MODNAME= gearman
PECL_VERSION= 2.0.5
PECL_VERSION= 2.0.6
DISTNAME= gearman-${PECL_VERSION}
PKGREVISION= 9
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GITHUB:=wcgallego/}
GITHUB_PROJECT= pecl-gearman
Expand All @@ -18,7 +17,7 @@ LICENSE= php

WRKSRC= ${WRKDIR}/pecl-gearman-gearman-${PECL_VERSION}

PHP_VERSIONS_ACCEPTED= 72
PHP_VERSIONS_ACCEPTED= 72 73 74

CONFIGURE_ARGS+= --with-gearman=shared,${BUILDLINK_PREFIX.gearmand}

Expand Down
21 changes: 17 additions & 4 deletions devel/php-gearman/distinfo
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
$NetBSD: distinfo,v 1.2 2018/08/23 08:37:06 fhajny Exp $

SHA1 (pecl-gearman/gearman-2.0.5.tar.gz) = ae9df19633d78f8fe8863ea40be77cef1208e6d3
RMD160 (pecl-gearman/gearman-2.0.5.tar.gz) = dcb9c7c03430faa631129712504229808c9d177f
SHA512 (pecl-gearman/gearman-2.0.5.tar.gz) = f8b8f8291423a37263a0d3bf7a702d0bb9c8f3d18922388af71ac710db7dcd1755c9d143364c1427b584a3852dfccba254468c9df9cadbc1249c9c7e52510353
Size (pecl-gearman/gearman-2.0.5.tar.gz) = 42007 bytes
SHA1 (pecl-gearman/gearman-2.0.6.tar.gz) = 1b199e166134a47792ba1aae2c3e945bae00fc13
RMD160 (pecl-gearman/gearman-2.0.6.tar.gz) = 029bdd224c6774f504582f6fca882635e1bb0dcd
SHA512 (pecl-gearman/gearman-2.0.6.tar.gz) = 36e7507b9a14009b86ae1a0433d5be7d8f3f39732f8156b90783ce2f5f985735d1be32bf3cc4b513eef5aa7d39b672257e31ba5c3f73408eef73d1c1b1162785
Size (pecl-gearman/gearman-2.0.6.tar.gz) = 42038 bytes
SHA1 (patch-php__gearman.c) = b29207b894525880a8aecaa735c4b098cf48e552
SHA1 (patch-php__gearman__client.c) = f4e12051ad1f57e1ef31b8ec23ff7b21c32b21e9
SHA1 (patch-php__gearman__client.h) = e8095895eb9ede04621f1791657b881a2dd57ace
SHA1 (patch-php__gearman__job.c) = 6f346223b3bd28a728a93231d1017378159f9647
SHA1 (patch-php__gearman__job.h) = 49d2598aa2f8d2ce8add2fc8ee72903bb1c2e3b0
SHA1 (patch-php__gearman__task.c) = 097c19ad9670639d7bfc13e2c4e120f50f67eae9
SHA1 (patch-php__gearman__task.h) = aeac235b4168bec58a1f2cdbf032849bee460262
SHA1 (patch-php__gearman__worker.c) = da5c2044511e1338c4b9f449cc5d9ed766827889
SHA1 (patch-php__gearman__worker.h) = 44b61497eb4e70aad9bd130cd51d87e16e52db15
SHA1 (patch-tests_gearman__client__022.phpt) = 7f8cdda84a8c73f64b20f79eee6d4eb8c5f913b1
SHA1 (patch-tests_gearman__job__003.phpt) = 40e567859abe1246352a081a572b19fc0f1ac8ff
SHA1 (patch-tests_gearman__task__006.phpt) = 91c3baa94287769c2f8317ff3c842d59bb69d08a
SHA1 (patch-tests_gearman__worker__017.phpt) = 4ccb192b0a7ac7c44c7a8bc199a6861253d29333
69 changes: 69 additions & 0 deletions devel/php-gearman/patches/patch-php__gearman.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
$NetBSD$

--- php_gearman.c.orig 2019-09-05 13:42:09.000000000 +0000
+++ php_gearman.c
@@ -1060,7 +1060,6 @@ zend_function_entry gearman_methods[]= {

static zend_function_entry gearman_client_methods[]= {
PHP_ME(GearmanClient, __construct, arginfo_gearman_client_construct, ZEND_ACC_CTOR | ZEND_ACC_PUBLIC)
- PHP_ME(GearmanClient, __destruct, arginfo_oo_gearman_client_destruct, ZEND_ACC_DTOR | ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(returnCode, gearman_client_return_code, arginfo_oo_gearman_client_return_code, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(error, gearman_client_error, arginfo_oo_gearman_client_error, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getErrno, gearman_client_get_errno, arginfo_oo_gearman_client_get_errno, ZEND_ACC_PUBLIC)
@@ -1112,7 +1111,6 @@ static zend_function_entry gearman_clien

zend_function_entry gearman_task_methods[]= {
PHP_ME(GearmanTask, __construct, arginfo_oo_gearman_task_construct, ZEND_ACC_CTOR | ZEND_ACC_PUBLIC)
- PHP_ME(GearmanTask, __destruct, arginfo_oo_gearman_task_destruct, ZEND_ACC_DTOR | ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(returnCode, gearman_task_return_code, arginfo_oo_gearman_task_return_code, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(functionName, gearman_task_function_name, arginfo_oo_gearman_task_function_name, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(unique, gearman_task_unique, arginfo_oo_gearman_task_unique, ZEND_ACC_PUBLIC)
@@ -1130,7 +1128,6 @@ zend_function_entry gearman_task_methods

zend_function_entry gearman_worker_methods[]= {
PHP_ME(GearmanWorker, __construct, arginfo_oo_gearman_worker_construct, ZEND_ACC_CTOR | ZEND_ACC_PUBLIC)
- PHP_ME(GearmanWorker, __destruct, arginfo_oo_gearman_worker_destruct, ZEND_ACC_DTOR | ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(returnCode, gearman_worker_return_code, arginfo_oo_gearman_worker_return_code, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(error, gearman_worker_error, arginfo_oo_gearman_worker_error, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getErrno, gearman_worker_errno, arginfo_oo_gearman_worker_errno, ZEND_ACC_PUBLIC)
@@ -1155,7 +1152,6 @@ zend_function_entry gearman_worker_metho
};

zend_function_entry gearman_job_methods[]= {
- PHP_ME(GearmanJob, __destruct, arginfo_oo_gearman_job_destruct, ZEND_ACC_DTOR | ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(returnCode, gearman_job_return_code, arginfo_oo_gearman_job_return_code, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(setReturn, gearman_job_set_return, arginfo_oo_gearman_job_set_return, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(sendData, gearman_job_send_data, arginfo_oo_gearman_job_send_data, ZEND_ACC_PUBLIC)
@@ -1184,28 +1180,28 @@ PHP_MINIT_FUNCTION(gearman) {
gearman_client_ce->create_object = gearman_client_obj_new;
memcpy(&gearman_client_obj_handlers, zend_get_std_object_handlers(), sizeof(gearman_client_obj_handlers));
gearman_client_obj_handlers.offset = XtOffsetOf(gearman_client_obj, std);
- gearman_client_obj_handlers.free_obj = NULL;
+ gearman_client_obj_handlers.free_obj = gearman_client_free_obj;

INIT_CLASS_ENTRY(ce, "GearmanTask", gearman_task_methods);
gearman_task_ce = zend_register_internal_class(&ce);
gearman_task_ce->create_object = gearman_task_obj_new;
memcpy(&gearman_task_obj_handlers, zend_get_std_object_handlers(), sizeof(gearman_task_obj_handlers));
gearman_task_obj_handlers.offset = XtOffsetOf(gearman_task_obj, std);
- gearman_task_obj_handlers.free_obj = NULL;
+ gearman_task_obj_handlers.free_obj = gearman_task_free_obj;

INIT_CLASS_ENTRY(ce, "GearmanWorker", gearman_worker_methods);
gearman_worker_ce = zend_register_internal_class(&ce);
gearman_worker_ce->create_object = gearman_worker_obj_new;
memcpy(&gearman_worker_obj_handlers, zend_get_std_object_handlers(), sizeof(gearman_worker_obj_handlers));
gearman_worker_obj_handlers.offset = XtOffsetOf(gearman_worker_obj, std);
- gearman_worker_obj_handlers.free_obj = NULL;
+ gearman_worker_obj_handlers.free_obj = gearman_worker_free_obj;

INIT_CLASS_ENTRY(ce, "GearmanJob", gearman_job_methods);
gearman_job_ce = zend_register_internal_class(&ce);
gearman_job_ce->create_object = gearman_job_obj_new;
memcpy(&gearman_job_obj_handlers, zend_get_std_object_handlers(), sizeof(gearman_job_obj_handlers));
gearman_job_obj_handlers.offset = XtOffsetOf(gearman_job_obj, std);
- gearman_job_obj_handlers.free_obj = NULL;
+ gearman_job_obj_handlers.free_obj = gearman_job_free_obj;

/* XXX exception class */
INIT_CLASS_ENTRY(ce, "GearmanException", gearman_exception_methods)
19 changes: 19 additions & 0 deletions devel/php-gearman/patches/patch-php__gearman__client.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
$NetBSD$

--- php_gearman_client.c.orig 2019-09-05 13:42:09.000000000 +0000
+++ php_gearman_client.c
@@ -71,12 +71,9 @@ PHP_METHOD(GearmanClient, __construct)
}
/* }}} */

-/* {{{ proto object GearmanClient::__destruct()
- cleans up GearmanClient object */
-PHP_METHOD(GearmanClient, __destruct)
-{
+void gearman_client_free_obj(zend_object *object) {
char *context = NULL;
- gearman_client_obj *intern = Z_GEARMAN_CLIENT_P(getThis());
+ gearman_client_obj *intern = gearman_client_fetch_object(object);
if (!intern) {
return;
}
16 changes: 16 additions & 0 deletions devel/php-gearman/patches/patch-php__gearman__client.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
$NetBSD$

--- php_gearman_client.h.orig 2019-09-05 13:42:09.000000000 +0000
+++ php_gearman_client.h
@@ -72,9 +72,10 @@ gearman_client_obj *gearman_client_fetch
(__ret) == GEARMAN_WORK_WARNING || \
(__ret) == GEARMAN_WORK_FAIL)

+void gearman_client_free_obj(zend_object *object);
+
PHP_FUNCTION(gearman_client_create);
PHP_METHOD(GearmanClient, __construct);
-PHP_METHOD(GearmanClient, __destruct);
PHP_FUNCTION(gearman_client_return_code);
PHP_FUNCTION(gearman_client_error);
PHP_FUNCTION(gearman_client_get_errno);
48 changes: 48 additions & 0 deletions devel/php-gearman/patches/patch-php__gearman__job.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
$NetBSD$

--- php_gearman_job.c.orig 2019-09-05 13:42:09.000000000 +0000
+++ php_gearman_job.c
@@ -15,21 +15,6 @@ gearman_job_obj *gearman_job_fetch_objec
return (gearman_job_obj *)((char*)(obj) - XtOffsetOf(gearman_job_obj, std));
}

-/* {{{ proto object GearmanJob::__destruct()
- cleans up GearmanJob object */
-PHP_METHOD(GearmanJob, __destruct) {
- gearman_job_obj *intern = Z_GEARMAN_JOB_P(getThis());
- if (!intern) {
- return;
- }
-
- if (intern->flags & GEARMAN_JOB_OBJ_CREATED) {
- gearman_job_free(intern->job);
- }
-
- zend_object_std_dtor(&intern->std);
-}
-
zend_object *gearman_job_obj_new(zend_class_entry *ce) {
gearman_job_obj *intern = ecalloc(1,
sizeof(gearman_job_obj) +
@@ -42,6 +27,21 @@ zend_object *gearman_job_obj_new(zend_cl
return &intern->std;
}

+/* {{{ gearman_job_free_obj */
+void gearman_job_free_obj(zend_object *object) {
+ gearman_job_obj *intern = gearman_job_fetch_object(object);
+ if (!intern) {
+ return;
+ }
+
+ if (intern->flags & GEARMAN_JOB_OBJ_CREATED) {
+ gearman_job_free(intern->job);
+ }
+
+ zend_object_std_dtor(&intern->std);
+}
+/* }}} */
+
/* {{{ proto int gearman_job_return_code()
get last gearman_return_t */
PHP_FUNCTION(gearman_job_return_code) {
14 changes: 14 additions & 0 deletions devel/php-gearman/patches/patch-php__gearman__job.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
$NetBSD$

--- php_gearman_job.h.orig 2019-09-05 13:42:09.000000000 +0000
+++ php_gearman_job.h
@@ -45,7 +45,8 @@ typedef struct {
gearman_job_obj *gearman_job_fetch_object(zend_object *obj);
#define Z_GEARMAN_JOB_P(zv) gearman_job_fetch_object(Z_OBJ_P((zv)))

-PHP_METHOD(GearmanJob, __destruct);
+void gearman_job_free_obj(zend_object *object);
+
PHP_FUNCTION(gearman_job_return_code);
PHP_FUNCTION(gearman_job_set_return);
PHP_FUNCTION(gearman_job_send_data);
17 changes: 17 additions & 0 deletions devel/php-gearman/patches/patch-php__gearman__task.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
$NetBSD$

--- php_gearman_task.c.orig 2019-09-05 13:42:09.000000000 +0000
+++ php_gearman_task.c
@@ -127,10 +127,8 @@ gearman_return_t _php_task_fail_fn(gearm
PHP_METHOD(GearmanTask, __construct) {
}

-/* {{{ proto object GearmanTask::__destruct()
- Destroys a task object */
-PHP_METHOD(GearmanTask, __destruct) {
- gearman_task_obj *intern = Z_GEARMAN_TASK_P(getThis());
+void gearman_task_free_obj(zend_object *object) {
+ gearman_task_obj *intern = gearman_task_fetch_object(object);
if (!intern) {
return;
}
15 changes: 15 additions & 0 deletions devel/php-gearman/patches/patch-php__gearman__task.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
$NetBSD$

--- php_gearman_task.h.orig 2019-09-05 13:42:09.000000000 +0000
+++ php_gearman_task.h
@@ -61,8 +61,9 @@ gearman_return_t _php_task_complete_fn(g
gearman_return_t _php_task_exception_fn(gearman_task_st *task);
gearman_return_t _php_task_fail_fn(gearman_task_st *task);

+void gearman_task_free_obj(zend_object *object);
+
PHP_METHOD(GearmanTask, __construct);
-PHP_METHOD(GearmanTask, __destruct);
PHP_FUNCTION(gearman_task_return_code);
PHP_FUNCTION(gearman_task_function_name);
PHP_FUNCTION(gearman_task_unique);
17 changes: 17 additions & 0 deletions devel/php-gearman/patches/patch-php__gearman__worker.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
$NetBSD$

--- php_gearman_worker.c.orig 2019-09-05 13:42:09.000000000 +0000
+++ php_gearman_worker.c
@@ -57,10 +57,8 @@ PHP_METHOD(GearmanWorker, __construct) {
}
/* }}} */

-/* {{{ proto object GearmanWorker::__destruct()
- Destroys a worker object */
-PHP_METHOD(GearmanWorker, __destruct) {
- gearman_worker_obj *intern = Z_GEARMAN_WORKER_P(getThis());
+void gearman_worker_free_obj(zend_object *object) {
+ gearman_worker_obj *intern = gearman_worker_fetch_object(object);

if (!intern) {
return;
16 changes: 16 additions & 0 deletions devel/php-gearman/patches/patch-php__gearman__worker.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
$NetBSD$

--- php_gearman_worker.h.orig 2019-09-05 13:42:09.000000000 +0000
+++ php_gearman_worker.h
@@ -54,9 +54,10 @@ typedef struct {
gearman_worker_obj *gearman_worker_fetch_object(zend_object *obj);
#define Z_GEARMAN_WORKER_P(zv) gearman_worker_fetch_object(Z_OBJ_P((zv)))

+void gearman_worker_free_obj(zend_object *object);
+
PHP_FUNCTION(gearman_worker_create);
PHP_METHOD(GearmanWorker, __construct);
-PHP_METHOD(GearmanWorker, __destruct);
PHP_FUNCTION(gearman_worker_return_code);
PHP_FUNCTION(gearman_worker_error);
PHP_FUNCTION(gearman_worker_errno);
26 changes: 26 additions & 0 deletions devel/php-gearman/patches/patch-tests_gearman__client__022.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
$NetBSD$

--- tests/gearman_client_022.phpt.orig 2020-08-11 21:46:29.046122087 +0000
+++ tests/gearman_client_022.phpt
@@ -0,0 +1,21 @@
+--TEST--
+unserialize(serialize(GearmanClient))
+--SKIPIF--
+<?php if (!extension_loaded("gearman")) print "skip"; ?>
+--FILE--
+<?php
+
+$i = 0;
+while ($i <= 5) {
+ echo $i;
+ $client = new GearmanClient();
+ unserialize(serialize($client));
+ $i++;
+}
+print PHP_EOL;
+
+print "OK";
+?>
+--EXPECT--
+012345
+OK
26 changes: 26 additions & 0 deletions devel/php-gearman/patches/patch-tests_gearman__job__003.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
$NetBSD$

--- tests/gearman_job_003.phpt.orig 2020-08-11 21:46:29.046122087 +0000
+++ tests/gearman_job_003.phpt
@@ -0,0 +1,21 @@
+--TEST--
+unserialize(serialize(GearmanJob))
+--SKIPIF--
+<?php if (!extension_loaded("gearman")) print "skip"; ?>
+--FILE--
+<?php
+
+$i = 0;
+while ($i <= 5) {
+ echo $i;
+ $job = new GearmanJob();
+ unserialize(serialize($job));
+ $i++;
+}
+print PHP_EOL;
+
+print "OK";
+?>
+--EXPECT--
+012345
+OK
26 changes: 26 additions & 0 deletions devel/php-gearman/patches/patch-tests_gearman__task__006.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
$NetBSD$

--- tests/gearman_task_006.phpt.orig 2020-08-11 21:46:29.046122087 +0000
+++ tests/gearman_task_006.phpt
@@ -0,0 +1,21 @@
+--TEST--
+unserialize(serialize(GearmanTask))
+--SKIPIF--
+<?php if (!extension_loaded("gearman")) print "skip"; ?>
+--FILE--
+<?php
+
+$i = 0;
+while ($i <= 5) {
+ echo $i;
+ $client = new GearmanTask();
+ unserialize(serialize($client));
+ $i++;
+}
+print PHP_EOL;
+
+print "OK";
+?>
+--EXPECT--
+012345
+OK
26 changes: 26 additions & 0 deletions devel/php-gearman/patches/patch-tests_gearman__worker__017.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
$NetBSD$

--- tests/gearman_worker_017.phpt.orig 2020-08-11 21:46:29.046122087 +0000
+++ tests/gearman_worker_017.phpt
@@ -0,0 +1,21 @@
+--TEST--
+unserialize(serialize(GearmanWorker))
+--SKIPIF--
+<?php if (!extension_loaded("gearman")) print "skip"; ?>
+--FILE--
+<?php
+
+$i = 0;
+while ($i <= 5) {
+ echo $i;
+ $client = new GearmanWorker();
+ unserialize(serialize($client));
+ $i++;
+}
+print PHP_EOL;
+
+print "OK";
+?>
+--EXPECT--
+012345
+OK

0 comments on commit 8f7cf67

Please sign in to comment.