summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Evans <grknight@gentoo.org>2016-12-18 18:16:21 -0500
committerBrian Evans <grknight@gentoo.org>2016-12-18 18:16:21 -0500
commitc3b97104952cc1fc80554f2ff1e0fb9155eebbb7 (patch)
treeefa72959b9b4063b273eef58bcb49dab061b9444
parentsys-apps/systemd: update systemd-user-pam patch (diff)
downloadgentoo-c3b97104952cc1fc80554f2ff1e0fb9155eebbb7.tar.gz
gentoo-c3b97104952cc1fc80554f2ff1e0fb9155eebbb7.tar.bz2
gentoo-c3b97104952cc1fc80554f2ff1e0fb9155eebbb7.zip
dev-libs/ossp-uuid: Revbump to fix PHP support and bump to EAPI6
Package-Manager: Portage-2.3.3, Repoman-2.3.1
-rw-r--r--dev-libs/ossp-uuid/files/ossp-uuid-1.6.2-php70.patch337
-rw-r--r--dev-libs/ossp-uuid/files/uuid-1.6.2-php54.patch226
-rw-r--r--dev-libs/ossp-uuid/ossp-uuid-1.6.2-r6.ebuild122
3 files changed, 685 insertions, 0 deletions
diff --git a/dev-libs/ossp-uuid/files/ossp-uuid-1.6.2-php70.patch b/dev-libs/ossp-uuid/files/ossp-uuid-1.6.2-php70.patch
new file mode 100644
index 000000000000..0124003bc1fc
--- /dev/null
+++ b/dev-libs/ossp-uuid/files/ossp-uuid-1.6.2-php70.patch
@@ -0,0 +1,337 @@
+--- uuid/php/uuid.c 2016-12-18 01:23:26.000000000 -0500
++++ uuid/php/uuid.c 2016-12-18 01:23:43.564329483 -0500
+@@ -41,7 +41,13 @@
+ } ctx_t;
+
+ /* context implicit destruction */
++#if PHP_VERSION_ID >= 70000
++static void ctx_destructor(zend_resource *rsrc)
++#else
++typedef long zend_long;
++
+ static void ctx_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
++#endif
+ {
+ ctx_t *ctx = (ctx_t *)rsrc->ptr;
+
+@@ -120,16 +126,23 @@
+ zval *z_ctx;
+ ctx_t *ctx;
+ uuid_rc_t rc;
++#if PHP_VERSION_ID >= 70000
++ char *param_types = "z/";
++#else
++ char *param_types = "z";
++#endif
+
+ /* parse parameters */
+- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &z_ctx) == FAILURE)
++ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, param_types, &z_ctx) == FAILURE)
+ RETURN_LONG((long)UUID_RC_ARG);
+
+ /* post-process and sanity check parameters */
++#if PHP_VERSION_ID < 70000
+ if (!PZVAL_IS_REF(z_ctx)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_create: parameter wasn't passed by reference");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
++#endif
+
+ /* perform operation */
+ if ((ctx = (ctx_t *)malloc(sizeof(ctx_t))) == NULL)
+@@ -138,7 +151,12 @@
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_create: %s", uuid_error(rc));
+ RETURN_LONG((long)rc);
+ }
++#if PHP_VERSION_ID >= 70000
++ zval_dtor(z_ctx);
++ ZVAL_RES(z_ctx, zend_register_resource(ctx, ctx_id));
++#else
+ ZEND_REGISTER_RESOURCE(z_ctx, ctx, ctx_id);
++#endif
+
+ RETURN_LONG((long)rc);
+ }
+@@ -158,7 +177,11 @@
+ RETURN_LONG((long)UUID_RC_ARG);
+
+ /* post-process and sanity check parameters */
++#if PHP_VERSION_ID >= 70000
++ ctx = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
++#endif
+ if (ctx == NULL || ctx->uuid == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_destroy: invalid context");
+ RETURN_LONG((long)UUID_RC_ARG);
+@@ -185,21 +208,32 @@
+ zval *z_clone;
+ ctx_t *clone;
+ uuid_rc_t rc;
++#if PHP_VERSION_ID >= 70000
++ char *param_types = "rz/";
++#else
++ char *param_types = "rz";
++#endif
+
+ /* parse parameters */
+- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rz", &z_ctx, &z_clone) == FAILURE)
++ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, param_types, &z_ctx, &z_clone) == FAILURE)
+ RETURN_LONG((long)UUID_RC_ARG);
+
+ /* post-process and sanity check parameters */
++#if PHP_VERSION_ID >= 70000
++ ctx = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
++#endif
+ if (ctx == NULL || ctx->uuid == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_clone: invalid context");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
++#if PHP_VERSION_ID < 70000
+ if (!PZVAL_IS_REF(z_clone)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_clone: clone parameter wasn't passed by reference");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
++#endif
+
+ /* perform operation */
+ if ((clone = (ctx_t *)malloc(sizeof(ctx_t))) == NULL)
+@@ -208,7 +243,12 @@
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_clone: %s", uuid_error(rc));
+ RETURN_LONG((long)rc);
+ }
++#if PHP_VERSION_ID >= 70000
++ zval_dtor(z_clone);
++ ZVAL_RES(z_clone, zend_register_resource(clone, ctx_id));
++#else
+ ZEND_REGISTER_RESOURCE(z_clone, clone, ctx_id);
++#endif
+
+ RETURN_LONG((long)rc);
+ }
+@@ -230,7 +271,11 @@
+ RETURN_LONG((long)UUID_RC_ARG);
+
+ /* post-process and sanity check parameters */
++#if PHP_VERSION_ID >= 70000
++ ctx = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
++#endif
+ if (ctx == NULL || ctx->uuid == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_load: invalid context");
+ RETURN_LONG((long)UUID_RC_ARG);
+@@ -254,7 +299,7 @@
+ zval *z_ctx;
+ ctx_t *ctx;
+ uuid_rc_t rc;
+- long z_mode;
++ zend_long z_mode;
+ unsigned long mode;
+ zval *z_ctx_ns;
+ ctx_t *ctx_ns;
+@@ -266,7 +311,11 @@
+ RETURN_LONG((long)UUID_RC_ARG);
+
+ /* post-process and sanity check parameters */
++#if PHP_VERSION_ID >= 70000
++ ctx = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
++#endif
+ if (ctx == NULL || ctx->uuid == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_make: invalid context");
+ RETURN_LONG((long)UUID_RC_ARG);
+@@ -281,7 +330,11 @@
+ }
+ }
+ else if (ZEND_NUM_ARGS() == 4 && ((mode & UUID_MAKE_V3) || (mode & UUID_MAKE_V5))) {
++#if PHP_VERSION_ID >= 70000
++ ctx_ns = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx_ns), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx_ns, ctx_t *, &z_ctx_ns, -1, ctx_name, ctx_id);
++#endif
+ if (ctx_ns == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_make: invalid namespace context");
+ RETURN_LONG((long)UUID_RC_ARG);
+@@ -314,21 +367,33 @@
+ uuid_rc_t rc;
+ zval *z_result;
+ int result;
++#if PHP_VERSION_ID >= 70000
++ char *param_types = "rz/";
++#else
++ char *param_types = "rz";
++#endif
+
+ /* parse parameters */
+- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rz", &z_ctx, &z_result) == FAILURE)
++ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, param_types, &z_ctx, &z_result) == FAILURE)
+ RETURN_LONG((long)UUID_RC_ARG);
+
+ /* post-process and sanity check parameters */
++#if PHP_VERSION_ID >= 70000
++ zval_dtor(z_result);
++ ctx = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
++#endif
+ if (ctx == NULL || ctx->uuid == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_isnil: invalid context");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
++#if PHP_VERSION_ID < 70000
+ if (!PZVAL_IS_REF(z_result)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_isnil: result parameter wasn't passed by reference");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
++#endif
+
+ /* perform operation */
+ if ((rc = uuid_isnil(ctx->uuid, &result)) != UUID_RC_OK) {
+@@ -353,26 +418,42 @@
+ uuid_rc_t rc;
+ zval *z_result;
+ int result;
++#if PHP_VERSION_ID >= 70000
++ char *param_types = "rrz/";
++#else
++ char *param_types = "rrz";
++#endif
+
+ /* parse parameters */
+- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrz", &z_ctx, &z_ctx2, &z_result) == FAILURE)
++ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, param_types, &z_ctx, &z_ctx2, &z_result) == FAILURE)
+ RETURN_LONG((long)UUID_RC_ARG);
+
+ /* post-process and sanity check parameters */
++#if PHP_VERSION_ID >= 70000
++ zval_dtor(z_result);
++ ctx = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
++#endif
+ if (ctx == NULL || ctx->uuid == NULL) {
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_compare: invalid context");
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_compare: invalid context from first parameter");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
++#if PHP_VERSION_ID >= 70000
++ ctx2 = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx2), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx2, ctx_t *, &z_ctx2, -1, ctx_name, ctx_id);
++#endif
+- if (ctx2 == NULL || ctx2->uuid) {
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_compare: invalid context");
++ if (ctx2 == NULL || ctx2->uuid == NULL) {
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_compare: invalid context from second parameter");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
++#if PHP_VERSION_ID < 70000
+ if (!PZVAL_IS_REF(z_result)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_compare: result parameter wasn't passed by reference");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
++#endif
+
+ /* perform operation */
+ if ((rc = uuid_compare(ctx->uuid, ctx2->uuid, &result)) != UUID_RC_OK) {
+@@ -392,7 +473,7 @@
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+- long z_fmt;
++ zend_long z_fmt;
+ unsigned long fmt;
+ zval *z_data;
+ uuid_rc_t rc;
+@@ -404,7 +485,11 @@
+ RETURN_LONG((long)UUID_RC_ARG);
+
+ /* post-process and sanity check parameters */
++#if PHP_VERSION_ID >= 70000
++ ctx = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
++#endif
+ if (ctx == NULL || ctx->uuid == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_import: invalid context");
+ RETURN_LONG((long)UUID_RC_ARG);
+@@ -428,28 +513,40 @@
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+- long z_fmt;
++ zend_long z_fmt;
+ unsigned long fmt;
+ zval *z_data;
+ uuid_rc_t rc;
+ void *data_ptr;
+ size_t data_len;
++#if PHP_VERSION_ID >= 70000
++ char *param_types = "rlz/";
++#else
++ char *param_types = "rlz";
++#endif
+
+ /* parse parameters */
+- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlz", &z_ctx, &z_fmt, &z_data) == FAILURE)
++ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, param_types, &z_ctx, &z_fmt, &z_data) == FAILURE)
+ RETURN_LONG((long)UUID_RC_ARG);
+
+ /* post-process and sanity check parameters */
++#if PHP_VERSION_ID >= 70000
++ zval_dtor(z_data);
++ ctx = (ctx_t *)zend_fetch_resource(Z_RES_P(z_ctx), ctx_name, ctx_id);
++#else
+ ZEND_FETCH_RESOURCE(ctx, ctx_t *, &z_ctx, -1, ctx_name, ctx_id);
++#endif
+ if (ctx == NULL || ctx->uuid == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_export: invalid context");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
+ fmt = (unsigned long)z_fmt;
++#if PHP_VERSION_ID < 70000
+ if (!PZVAL_IS_REF(z_data)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "uuid_export: data parameter wasn't passed by reference");
+ RETURN_LONG((long)UUID_RC_ARG);
+ }
++#endif
+
+ /* perform operation */
+ data_ptr = NULL;
+@@ -462,7 +559,11 @@
+ data_len = strlen((char *)data_ptr);
+ else if (fmt == UUID_FMT_STR || fmt == UUID_FMT_TXT)
+ data_len--; /* PHP doesn't wish NUL-termination on strings */
++#if PHP_VERSION_ID >= 70000
++ ZVAL_STRINGL(z_data, data_ptr, data_len);
++#else
+ ZVAL_STRINGL(z_data, data_ptr, data_len, 1);
++#endif
+ free(data_ptr);
+
+ RETURN_LONG((long)rc);
+@@ -474,7 +575,7 @@
+ return error string corresponding to error return code */
+ ZEND_FUNCTION(uuid_error)
+ {
+- int z_rc;
++ zend_long z_rc;
+ uuid_rc_t rc;
+ char *error;
+
+@@ -483,7 +584,11 @@
+ rc = (uuid_rc_t)z_rc;
+ if ((error = uuid_error(rc)) == NULL)
+ RETURN_NULL();
++#if PHP_VERSION_ID >= 70000
++ RETURN_STRING(error);
++#else
+ RETURN_STRING(error, 1);
++#endif
+ }
+
+ /* API FUNCTION:
diff --git a/dev-libs/ossp-uuid/files/uuid-1.6.2-php54.patch b/dev-libs/ossp-uuid/files/uuid-1.6.2-php54.patch
new file mode 100644
index 000000000000..c00f560f1fd8
--- /dev/null
+++ b/dev-libs/ossp-uuid/files/uuid-1.6.2-php54.patch
@@ -0,0 +1,226 @@
+diff -up uuid-1.6.2/php/uuid.c.php54 uuid-1.6.2/php/uuid.c
+--- uuid-1.6.2/php/uuid.c 2007-01-01 19:35:57.000000000 +0100
++++ uuid-1.6.2/php/uuid.c 2012-11-06 16:05:03.354913764 +0100
+@@ -60,7 +60,7 @@ static int ctx_id; /* inte
+ #define ctx_name "UUID context" /* external name */
+
+ /* module initialization */
+-PHP_MINIT_FUNCTION(uuid)
++ZEND_MINIT_FUNCTION(uuid)
+ {
+ /* register resource identifier */
+ ctx_id = zend_register_list_destructors_ex(
+@@ -91,13 +91,13 @@ PHP_MINIT_FUNCTION(uuid)
+ }
+
+ /* module shutdown */
+-PHP_MSHUTDOWN_FUNCTION(uuid)
++ZEND_MSHUTDOWN_FUNCTION(uuid)
+ {
+ return SUCCESS;
+ }
+
+ /* module information */
+-PHP_MINFO_FUNCTION(uuid)
++ZEND_MINFO_FUNCTION(uuid)
+ {
+ char version[32];
+
+@@ -115,7 +115,7 @@ PHP_MINFO_FUNCTION(uuid)
+ proto rc uuid_create(ctx)
+ $rc = uuid_create(&$uuid);
+ create UUID context */
+-PHP_FUNCTION(uuid_create)
++ZEND_FUNCTION(uuid_create)
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+@@ -147,7 +147,7 @@ PHP_FUNCTION(uuid_create)
+ proto rc uuid_destroy(ctx)
+ $rc = uuid_destroy($uuid);
+ destroy UUID context */
+-PHP_FUNCTION(uuid_destroy)
++ZEND_FUNCTION(uuid_destroy)
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+@@ -178,7 +178,7 @@ PHP_FUNCTION(uuid_destroy)
+ proto rc uuid_clone(ctx, &ctx2)
+ $rc = uuid_clone($uuid, &$uuid);
+ clone UUID context */
+-PHP_FUNCTION(uuid_clone)
++ZEND_FUNCTION(uuid_clone)
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+@@ -217,7 +217,7 @@ PHP_FUNCTION(uuid_clone)
+ proto rc uuid_load(ctx, name)
+ $rc = uuid_name($uuid, $name);
+ load an existing UUID */
+-PHP_FUNCTION(uuid_load)
++ZEND_FUNCTION(uuid_load)
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+@@ -249,7 +249,7 @@ PHP_FUNCTION(uuid_load)
+ proto rc uuid_make(ctx, mode[, ..., ...])
+ $rc = uuid_make($uuid, $mode[, ..., ...]);
+ make a new UUID */
+-PHP_FUNCTION(uuid_make)
++ZEND_FUNCTION(uuid_make)
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+@@ -307,7 +307,7 @@ PHP_FUNCTION(uuid_make)
+ proto rc uuid_isnil(ctx, result)
+ $rc = uuid_isnil($uuid, &$result);
+ compare UUID for being Nil UUID */
+-PHP_FUNCTION(uuid_isnil)
++ZEND_FUNCTION(uuid_isnil)
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+@@ -344,7 +344,7 @@ PHP_FUNCTION(uuid_isnil)
+ proto rc uuid_compare(ctx, ctx2, result)
+ $rc = uuid_compare($uuid, $uuid2, &$result);
+ compare two UUIDs */
+-PHP_FUNCTION(uuid_compare)
++ZEND_FUNCTION(uuid_compare)
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+@@ -388,7 +388,7 @@ PHP_FUNCTION(uuid_compare)
+ proto rc uuid_import(ctx, fmt, data)
+ $rc = uuid_import($ctx, $fmt, $data);
+ import UUID from variable */
+-PHP_FUNCTION(uuid_import)
++ZEND_FUNCTION(uuid_import)
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+@@ -424,7 +424,7 @@ PHP_FUNCTION(uuid_import)
+ proto rc uuid_export(ctx, fmt, data)
+ $rc = uuid_error($ctx, $fmt, &$data);
+ export UUID into variable */
+-PHP_FUNCTION(uuid_export)
++ZEND_FUNCTION(uuid_export)
+ {
+ zval *z_ctx;
+ ctx_t *ctx;
+@@ -472,7 +472,7 @@ PHP_FUNCTION(uuid_export)
+ proto rc uuid_error(ctx)
+ $error = uuid_error($rc);
+ return error string corresponding to error return code */
+-PHP_FUNCTION(uuid_error)
++ZEND_FUNCTION(uuid_error)
+ {
+ int z_rc;
+ uuid_rc_t rc;
+@@ -490,24 +490,79 @@ PHP_FUNCTION(uuid_error)
+ proto int uuid_version()
+ $version = uuid_version();
+ return library version number */
+-PHP_FUNCTION(uuid_version)
++ZEND_FUNCTION(uuid_version)
+ {
+ RETURN_LONG((long)uuid_version());
+ }
+
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_create, 0)
++ ZEND_ARG_INFO(1, ctx)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_destroy, 0)
++ ZEND_ARG_INFO(0, ctx)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_clone, 0)
++ ZEND_ARG_INFO(0, ctx)
++ ZEND_ARG_INFO(1, ctx2)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_load, 0)
++ ZEND_ARG_INFO(0, ctx)
++ ZEND_ARG_INFO(0, name)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_uuid_make, 0, 0, 2)
++ ZEND_ARG_INFO(0, ctx)
++ ZEND_ARG_INFO(0, mode)
++ ZEND_ARG_INFO(0, ctxns)
++ ZEND_ARG_INFO(0, url)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_isnil, 0)
++ ZEND_ARG_INFO(0, ctx)
++ ZEND_ARG_INFO(1, result)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_compare, 0)
++ ZEND_ARG_INFO(0, ctx)
++ ZEND_ARG_INFO(0, ctx2)
++ ZEND_ARG_INFO(1, result)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_import, 0)
++ ZEND_ARG_INFO(0, ctx)
++ ZEND_ARG_INFO(0, fmt)
++ ZEND_ARG_INFO(0, data)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_export, 0)
++ ZEND_ARG_INFO(0, ctx)
++ ZEND_ARG_INFO(0, fmt)
++ ZEND_ARG_INFO(1, data)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_error, 0)
++ ZEND_ARG_INFO(0, ctx)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO(arginfo_uuid_version, 0)
++ZEND_END_ARG_INFO()
++
+ /* module function table */
+-static function_entry uuid_functions[] = {
+- PHP_FE(uuid_create, NULL)
+- PHP_FE(uuid_destroy, NULL)
+- PHP_FE(uuid_clone, NULL)
+- PHP_FE(uuid_load, NULL)
+- PHP_FE(uuid_make, NULL)
+- PHP_FE(uuid_isnil, NULL)
+- PHP_FE(uuid_compare, NULL)
+- PHP_FE(uuid_import, NULL)
+- PHP_FE(uuid_export, NULL)
+- PHP_FE(uuid_error, NULL)
+- PHP_FE(uuid_version, NULL)
++static zend_function_entry uuid_functions[] = {
++ ZEND_FE(uuid_create, arginfo_uuid_create)
++ ZEND_FE(uuid_destroy, NULL)
++ ZEND_FE(uuid_clone, arginfo_uuid_clone)
++ ZEND_FE(uuid_load, NULL)
++ ZEND_FE(uuid_make, NULL)
++ ZEND_FE(uuid_isnil, arginfo_uuid_isnil)
++ ZEND_FE(uuid_compare, arginfo_uuid_compare)
++ ZEND_FE(uuid_import, NULL)
++ ZEND_FE(uuid_export, arginfo_uuid_export)
++ ZEND_FE(uuid_error, NULL)
++ ZEND_FE(uuid_version, NULL)
+ { NULL, NULL, NULL }
+ };
+
+@@ -516,11 +571,11 @@ zend_module_entry uuid_module_entry = {
+ STANDARD_MODULE_HEADER,
+ "uuid",
+ uuid_functions,
+- PHP_MINIT(uuid),
+- PHP_MSHUTDOWN(uuid),
++ ZEND_MINIT(uuid),
++ ZEND_MSHUTDOWN(uuid),
+ NULL,
+ NULL,
+- PHP_MINFO(uuid),
++ ZEND_MINFO(uuid),
+ NO_VERSION_YET,
+ STANDARD_MODULE_PROPERTIES
+ };
diff --git a/dev-libs/ossp-uuid/ossp-uuid-1.6.2-r6.ebuild b/dev-libs/ossp-uuid/ossp-uuid-1.6.2-r6.ebuild
new file mode 100644
index 000000000000..3435a7860440
--- /dev/null
+++ b/dev-libs/ossp-uuid/ossp-uuid-1.6.2-r6.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+MY_P="uuid-${PV}"
+
+PHP_EXT_NAME="uuid"
+PHP_EXT_INI="yes"
+PHP_EXT_ZENDEXT="no"
+PHP_EXT_S="${WORKDIR}/${MY_P}/php"
+PHP_EXT_OPTIONAL_USE="php"
+USE_PHP="php5-6 php7-0 php7-1"
+
+GENTOO_DEPEND_ON_PERL="no"
+
+inherit perl-module php-ext-source-r3
+
+DESCRIPTION="An ISO-C:1999 API and corresponding CLI for the generation of DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant UUID"
+HOMEPAGE="http://www.ossp.org/pkg/lib/uuid/"
+SRC_URI="ftp://ftp.ossp.org/pkg/lib/uuid/${MY_P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~x86-macos"
+IUSE="+cxx perl php static-libs"
+
+DEPEND="perl? ( dev-lang/perl:= )"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+
+ eapply \
+ "${FILESDIR}/${P}-gentoo-r1.patch" \
+ "${FILESDIR}/${P}-gentoo-perl.patch" \
+ "${FILESDIR}/${P}-hwaddr.patch" \
+ "${FILESDIR}/${P}-manfix.patch" \
+ "${FILESDIR}/${P}-uuid-preserve-m-option-status-in-v-option-handling.patch" \
+ "${FILESDIR}/${P}-fix-whatis-entries.patch" \
+ "${FILESDIR}/${P}-fix-data-uuid-from-string.patch"
+
+ if use php; then
+ local slot
+ for slot in $(php_get_slots); do
+ php_init_slot_env ${slot}
+ eapply -p2 \
+ "${FILESDIR}/${P}-gentoo-php.patch" \
+ "${FILESDIR}/uuid-${PV}-php54.patch" \
+ "${FILESDIR}/${P}-php70.patch"
+ done
+
+ php-ext-source-r3_src_prepare
+ fi
+ #Remove call by reference which is error
+ sed -i -e 's/\&\$/\$/' -e '/?>/d' "${S}/php/uuid.php5" || die
+}
+
+src_configure() {
+ # Notes:
+ # * collides with e2fstools libs and includes if not moved around
+ # * pgsql-bindings need PostgreSQL-sources and are included since PostgreSQL 8.3
+ econf \
+ --includedir="${EPREFIX}"/usr/include/ossp \
+ --with-dce \
+ --without-pgsql \
+ --without-perl \
+ --without-php \
+ $(use_with cxx) \
+ $(use_enable static-libs static)
+
+ if use php; then
+ php-ext-source-r3_src_configure
+ fi
+}
+
+src_compile() {
+ default
+
+ if use perl; then
+ cd perl
+ # configure needs the ossp-uuid.la generated by `make` in $S
+ perl-module_src_configure
+ perl-module_src_compile
+ fi
+
+ if use php; then
+ php-ext-source-r3_src_compile
+ fi
+}
+
+src_install() {
+ local DOCS=( AUTHORS BINDINGS ChangeLog HISTORY NEWS OVERVIEW PORTING README SEEALSO THANKS TODO USERS )
+ default
+ unset DOCS #unset so that other eclasses don't try to install them and possibly fail
+ if use perl ; then
+ cd perl
+ perl-module_src_install
+ fi
+
+ if use php ; then
+ php-ext-source-r3_src_install
+ insinto /usr/share/php
+ cd "${S}/php" || die
+ newins uuid.php5 uuid.php
+ fi
+
+ use static-libs || rm -rf "${ED}"/usr/lib*/*.la
+
+ mv "${ED}/usr/$(get_libdir)/pkgconfig"/{,ossp-}uuid.pc
+ mv "${ED}/usr/share/man/man3"/uuid.3{,ossp}
+ mv "${ED}/usr/share/man/man3"/uuid++.3{,ossp}
+}
+
+src_test() {
+ export LD_LIBRARY_PATH="${S}/.libs" # required for the perl-bindings to load the (correct) library
+ default
+
+ use perl && emake -C perl test
+}